Systems and methods for cell classification in visualization space and sorting thereof

Deep learning and computer vision are employed to analyze cell phenotypes and classify cells in a two-dimensional space, addressing the inefficiencies of existing methods and improving cell sorting and diagnostic accuracy.

WO2025184321A1PCT designated stage Publication Date: 2025-09-04DEEPCELL INC
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/US2025/017556
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-12
Filing Date
2025-02-27
Publication Date
2025-09-04

AI Technical Summary

Technical Problem

Existing methods for analyzing cell morphology and phenotypes, particularly in the context of genetic edits, lack efficient and accurate systems for cell classification and sorting.

Method used

Utilizing deep learning and computer vision to analyze cell phenotypes by determining cell locations in a feature space and visualization space, generating a two-dimensional interface, and applying clustering algorithms to classify and route cells to specific wells based on their characteristics.

Benefits of technology

Enables precise cell classification and sorting, allowing for efficient routing of cells to designated destinations, enhancing diagnostic capabilities and operational efficiency in cell analysis systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2025017556_04092025_PF_FP_ABST
    Figure US2025017556_04092025_PF_FP_ABST
Patent Text Reader

Abstract

The described methods involve supporting user-defined classes and managing the routing of cells in a fluidic system. The first method entails determining locations for each cell in a multi-dimensional feature space using cell images and subsequently identifying their positions in a two-dimensional visualization space. This includes receiving two-dimensional regions within the visualization space to classify additional cells based on these regions. The second method focuses on the routing of a cell to a designated destination among multiple options. It includes assessing whether the routing results in a threshold number of cells being sent to that destination, and if so, executing a flush of the cell by introducing a flushing fluid into an upstream channel connected to the destination.
Need to check novelty before this filing date? Find Prior Art

Description

SYSTEMS AND METHODS FOR CELL CLASSIFICATION IN VISUALIZATION SPACE AND SORTING THEREOFCROSS-REFERENCE

[0001] This application claims the benefit of U.S. Provisional Application No. 63 / 559,806, filed February 29, 2024, U.S. Provisional Application No. 63 / 564,402, filed March 12, 2024, U.S. Provisional Application No. 63 / 559,826, filed February 29, 2024, and U.S. Provisional Application No. 63 / 564,318, filed March 12, 2024, each of which application is incorporated herein by reference in its entirely.BACKGROUND

[0002] In some cases, the properties of cells may be analyzed to diagnose diseases and other conditions. Such analysis may include evaluation of cell morphology to determine cell type (e.g., stem cell or differentiated cell) or cell state (e.g., healthy state or disease state). In some cases, cells may be directed through a channel of a cartridge, under fluidic guidance, through a microscope imaging field. In some embodiments, the images captured through the microscope may be processed to evaluate cell morphology. While a variety of devices, systems, and methods have been made and used to process and analyze cells, it is believed that no one previously has made or used the devices and techniques described herein.SUMMARY

[0003] Provided herein is the use of deep learning and computer vision to analyze phenotypes of cells with genetic edits. Provided below are several examples that may be employed in any combination to achieve the benefits as described herein.

[0004] In an aspect, the present disclosure provides a method comprising: for each cell in a set of cells, determining a corresponding location in a feature space using at least one of one or more cell images which depict that cell, wherein the feature space has more than three dimensions; for each cell in the set of cells, determining a corresponding location in a visualization space using at least the corresponding location in the feature space for that cell, wherein the visualization space has two dimensions; generating a two dimensional interface to display data points at locations in the visualization space; receiving a set of two dimensional regions in the visualization space; and for a cell from a set of one or more additional cells, determining a class for that cell using at least the set of two dimensional regions.

[0005] In some embodiments, each region from the set of two dimensional regionscorresponds to a class; and for the cell from the set of one or more additional cells, determining the class for that cell using at least the set of two dimensional regions comprises: determining a location for that cell in the visualization space; and determining the class for that cell as the class corresponding to a region from the set of two dimensional regions which contains the location of that cell in the visualization space.

[0006] In some embodiments, the two dimensional interface displays the data points in a two dimensional array; the method further comprises, for each region from the set of two dimensional regions, storing data associating each location in the two dimensional array which falls within that two dimensional region with the class corresponding to that two dimensional region; for the cell from the set of one or more additional cells, determining the class for that cell comprises: determining a location for that cell in the two dimensional array using at least the location for that cell in the visualization space; and determining that the class for that cell is the class associated with the location for that cell in the two dimensional array.

[0007] In some embodiments, each region from the set of two dimensional regions corresponds to a class; and the method further comprises defining a set of regions on the feature space using at least, for each region from the set of two dimensional regions, determining a region in the feature space corresponding to that two dimensional region by performing acts comprising: identifying a set of data points displayed within that two dimensional region in the two dimensional interface; identifying locations in the feature space corresponding to the set of data points; identifying a region in the feature space circumscribed by a convex hull containing each of the locations in feature space identified as corresponding to the set of data points; and defining the region circumscribed by the convex hull as corresponding to the class corresponding to that two dimensional region; and for the cell from the set of one or more additional cells, determining the class for that cell using at least the set of two dimensional regions comprises: determining a location forthat cell in the feature space; identifying, a region from the set of regions in the feature space which contains the location for that additional cell in the feature space; and determining that the class for that additional cell is the class corresponding to the region in the feature space identified as containing the location for that additional cell in the feature space.

[0008] In some embodiments, the set of two dimensional regions comprises at least one region which is non-contiguous in the visualization space.

[0009] In some embodiments, the method further comprises determining automatically generated classes for each of the set of cells by applying a clustering algorithm; each data point in the two dimensional interface corresponds to one or more cells, each of which has the sameautomatically generated class; the two dimensional interface is to display the data points with visual characteristics corresponding to the automatically generated classes of their corresponding one or more cells; for the cell from the set of one or more additional cells: the class determined for that cell using at least the set of two dimensional regions is a user defined class; the method further comprises: determining an automatically generated class for that cell by applying the clustering algorithm; and after the user defined class is determined for that cell, displaying a data point corresponding to that cell with a characteristic corresponding to the automatically generated class for that cell.

[0010] In some embodiments, the characteristics corresponding to the automatically generated classes are colors.

[0011] In some embodiments, the clustering algorithm is a community detection algorithm.

[0012] In some embodiments, for the cell from the set of one or more additional cells: determining the class for that cell is performed while that cell flows through a flow channel; and the method further comprises determining to route that cell to a particular well corresponding to the class determined for that cell.

[0013] In some embodiments, the method further comprises, for the cell from the set of one or more additional cells: determining whether routing that cell to the particular well corresponding to the class determined for that cell results in a threshold number of cells having been routed to the particular well corresponding to the class determined for that cell; and determining to flush that cell to the particular well corresponding to the class determined for that cell using at least a determination that the threshold number of cells have been routed to the particular well corresponding to the class determined for that cell.

[0014] In some embodiments, for the cell from the set of one or more additional cells, the threshold number of cells is a maximum number of cells collectable in the particular well corresponding to the class determined for that cell.

[0015] In some embodiments, the method further comprises, for a second cell from the set of one or more additional cells: determining a class for that cell using at least the set of two dimensional regions; making a prioritization determination, wherein the prioritization determination comprises determining that there is at least one class which: has a higher priority than the class determined for that cell; and corresponds to a particular well to which the threshold number of cells have not been routed; and determining, using at least the priority determination, to route that cell to waste.

[0016] In some embodiments, the method further comprises, for a second cell from the set of one or more additional cells: obtaining a plurality of images for that cell; for a first imagefrom the plurality of images for that cell, determining a location in visualization space which corresponds to a first class; for a second image from the plurality of images for that cell, determining a location in visualization space which corresponds to a second class; and determining to route that cell to waste using a least a correspondence between two different classes of locations for images of that cell.

[0017] In some embodiments, for the cell from the set of one or more additional cells: determining the class for that cell using at least the set of two dimensional regions comprises: determining a location for that cell in the visualization space; and determining that the location for that cell in the visualization space falls within a first region from the set of two dimensional regions and a second region from the set of two dimensional regions, wherein the first region corresponds to a first class, and the second region corresponds to a second class; and the method further comprises determining a destination to route that cell using at least a priority of the first class and a priority of the second class.

[0018] In some embodiments, the method further comprises: determining an imaged pattern and a routed pattern using at least, for each cell from the set of one or more additional cells: receiving a first time, wherein the first time is when that cell passes through a first location in a cell analyzer; receiving a second time, wherein the second time is when that cell has traveled a distance from the first location in the cell analyzer; and adding the first time to the imaged pattern and the second time to the routed pattern; and periodically, with a frequency of one time per pattern period: determining a delay associated with traveling the distance from the first location in the cell analyzer using at least a determination of an offset between the imaged pattern and routed patterns over a most recent preceding pattern period; and resetting the imaged pattern and the routed pattern.

[0019] In some embodiments, the pattern period is one second.

[0020] In some embodiments, generating the two dimensional interface comprises generating data to display the two dimensional interface and sending the data to display the two dimensional interface to a user computer over a network connection; and receiving the set of two dimensional regions comprises receiving the set of two dimensional regions over the network connection.

[0021] In some embodiments, generating the two dimensional interface comprises displaying the two dimensional interface on a screen; and receiving the set of two dimensional regions comprises receiving each region as it is defined by a user using a set of region definition tools in the two dimensional interface.

[0022] In another aspects, the present disclosure provides a system comprising a processingmodule to perform a method comprising: for each cell in a set of cells, determining a corresponding location in a feature space using at least one of one or more cell images which depict that cell, wherein the feature space has more than three dimensions; for each cell in the set of cells, determining a corresponding location in a visualization space using at least the corresponding location in the feature space for that cell, wherein the visualization space has two dimensions; generating a two dimensional interface to display data points at locations in the visualization space; receiving a set of two dimensional regions in the visualization space; and for a cell from a set of one or more additional cells, determining a class for that cell using at least the set of two dimensional regions.

[0023] In some embodiments, each region from the set of two dimensional regions corresponds to a class; and for the cell from the set of one or more additional cells, determining the class for that cell using at least the set of two dimensional regions comprises: determining a location for that cell in the visualization space; and determining the class for that cell as the class corresponding to a region from the set of two dimensional regions which contains the location of that cell in the visualization space.

[0024] In some embodiments, the two dimensional interface displays the data points in a two dimensional array; the method further comprises, for each region from the set of two dimensional regions, storing data associating each location in the two dimensional array which falls within that two dimensional region with the class corresponding to that two dimensional region; for the cell from the set of one or more additional cells, determining the class for that cell comprises: determining a location for that cell in the two dimensional array using at least the location for that cell in the visualization space; and determining that the class for that cell is the class associated with the location for that cell in the two dimensional array.

[0025] In some embodiments, each region from the set of two dimensional regions corresponds to a class; and the method further comprises defining a set of regions on the feature space using at least, for each region from the set of two dimensional regions, determining a region in the feature space corresponding to that two dimensional region by performing acts comprising: identifying a set of data points displayed within that two dimensional region in the two dimensional interface; identifying locations in the feature space corresponding to the set of data points; identifying a region in the feature space circumscribed by a convex hull containing each of the locations in feature space identified as corresponding to the set of data points; and defining the region circumscribed by the convex hull as corresponding to the class corresponding to that two dimensional region; and for the cell from the set of one or more additional cells, determining the class for that cell using at least the set of two dimensionalregions comprises: determining a location forthat cell in the feature space; identifying, a region from the set of regions in the feature space which contains the location for that additional cell in the feature space; and determining that the class for that additional cell is the class corresponding to the region in the feature space identified as containing the location for that additional cell in the feature space.

[0026] In some embodiments, the set of two dimensional regions comprises at least one region which is non-contiguous in the visualization space.

[0027] In some embodiments, the method further comprises determining automatically generated classes for each of the set of cells by applying a clustering algorithm; each data point in the two dimensional interface corresponds to one or more cells, each of which has the same automatically generated class; the two dimensional interface is to display the data points with visual characteristics corresponding to the automatically generated classes of their corresponding one or more cells; for the cell from the set of one or more additional cells: the class determined for that cell using at least the set of two dimensional regions is a user defined class; the method further comprises: determining an automatically generated class for that cell by applying the clustering algorithm; and after the user defined class is determined for that cell, displaying a data point corresponding to that cell with a characteristic corresponding to the automatically generated class for that cell.

[0028] In some embodiments, the characteristics corresponding to the automatically generated classes are colors.

[0029] In some embodiments, the clustering algorithm is a community detection algorithm.

[0030] In some embodiments, for the cell from the set of one or more additional cells: determining the class for that cell is performed while that cell flows through a flow channel; and the method further comprises determining to route that cell to a particular well corresponding to the class determined for that cell.

[0031] In some embodiments, the method further comprises, for the cell from the set of one or more additional cells: determining whether routing that cell to the particular well corresponding to the class determined for that cell results in a threshold number of cells having been routed to the particular well corresponding to the class determined for that cell; and determining to flush that cell to the particular well corresponding to the class determined for that cell using at least a determination that the threshold number of cells have been routed to the particular well corresponding to the class determined for that cell.

[0032] In some embodiments, for the cell from the set of one or more additional cells, the threshold number of cells is a maximum number of cells collectable in the particular wellcorresponding to the class determined for that cell.

[0033] In some embodiments, the method further comprises, for a second cell from the set of one or more additional cells: determining a class for that cell using at least the set of two dimensional regions; making a prioritization determination, wherein the prioritization determination comprises determining that there is at least one class which: has a higher priority than the class determined for that cell; and corresponds to a particular well to which the threshold number of cells have not been routed; and determining, using at least the priority determination, to route that cell to waste.

[0034] In some embodiments, the method further comprises, for a second cell from the set of one or more additional cells: obtaining a plurality of images for that cell; for a first image from the plurality of images for that cell, determining a location in visualization space which corresponds to a first class; for a second image from the plurality of images for that cell, determining a location in visualization space which corresponds to a second class; and determining to route that cell to waste using a least a correspondence between two different classes of locations for images of that cell.

[0035] In some embodiments, for the cell from the set of one or more additional cells: determining the class for that cell using at least the set of two dimensional regions comprises: determining a location for that cell in the visualization space; and determining that the location for that cell in the visualization space falls within a first region from the set of two dimensional regions and a second region from the set of two dimensional regions, wherein the first region corresponds to a first class, and the second region corresponds to a second class; and the method further comprises determining a destination to route that cell using at least a priority of the first class and a priority of the second class.

[0036] In some embodiments, the method further comprises: determining an imaged pattern and a routed pattern using at least, for each cell from the set of one or more additional cells: receiving a first time, wherein the first time is when that cell passes through a first location in a cell analyzer; receiving a second time, wherein the second time is when that cell has traveled a distance from the first location in the cell analyzer; and adding the first time to the imaged pattern and the second time to the routed pattern; and periodically, with a frequency of one time per pattern period: determining a delay associated with traveling the distance from the first location in the cell analyzer using at least a determination of an offset between the imaged pattern and routed patterns over a most recent preceding pattern period; and resetting the imaged pattern and the routed pattern.

[0037] In some embodiments, the pattern period is one second.

[0038] In some embodiments, generating the two dimensional interface comprises generating data to display the two dimensional interface and sending the data to display the two dimensional interface to a user computer over a network connection; and receiving the set of two dimensional regions comprises receiving the set of two dimensional regions over the network connection.

[0039] In some embodiments, generating the two dimensional interface comprises displaying the two dimensional interface on a screen; and receiving the set of two dimensional regions comprises receiving each region as it is defined by a user using a set of region definition tools in the two dimensional interface.

[0040] In one aspect, the present disclosure provides a method comprising: performing an initial automatic class generation comprising, for each of a plurality of cells, determining an automatically generated class for that cell by applying a clustering algorithm; storing, in a non- transitory computer readable medium: a plurality of user generated classes; and for each of the user generated classes, a membership condition for that class; after the initial automatic class generation, for each of a set of additional cells, receiving one or more cell images depicting that cell; and for a cell from the set of one or more additional cells: determining an automatically generated class for that cell by applying the clustering algorithm; and for a user generated class from the plurality of user generated classes, determining that that cell corresponds to that user generated class using at least a determination that that cell satisfies the membership condition for that user generated class.

[0041] In some embodiments, the clustering algorithm clusters cells in a feature space, wherein the feature space has at least four dimensions; and for each user generated class from the plurality of user generated classes, the membership condition for that class uses at least a location in a two dimensional space.

[0042] In some embodiments, the two dimensional space comprises an array of locations; and for each user generated class from the plurality of user generated classes, the membership condition for that class is having a location in a subset of the array of locations which corresponds to that user generated class.

[0043] In some embodiments, the method further comprises displaying an interface which: displays data points at locations in the two dimensional space using at least locations of the plurality of cells in feature space, wherein each of the data points corresponds to one or more cells from the plurality of cells; and displays the data points with characteristics corresponding to the automatically generated classes of the cells corresponding to those data points.

[0044] In some embodiments, the characteristics corresponding to the automaticallygenerated classes are colors.

[0045] In some embodiments, for the cell from the set of one or more additional cells: determining the user generated class to which that cell corresponds is performed while that cell is flowing through a flow channel; and the method further comprises routing that cell to a particular well corresponding to the user generated class to which that cell corresponds.

[0046] In some embodiments, the method further comprises, for the cell from the set of one or more additional cells: determining whether routing that cell to the particular well corresponding to the user generated class to which that cell corresponds results in a threshold number of cells having been routed to the particular well corresponding to the user generated class to which that cell corresponds; and determining to flush that cell to the particular well corresponding to the user generated class to which that cell corresponds using at least a determination that the threshold number of cells have been routed to the particular well corresponding to the user generated class to which that cell corresponds.

[0047] In some embodiments, for the cell from the set of one or more additional cells, the threshold number of cells is a maximum number of cells collectable in the particular well corresponding to the user generated class to which the particular well corresponds.

[0048] In some embodiments, the method further comprises, for a second cell from the set of one or more additional cells: determining that that cell corresponds to a second user generated class from the plurality of user generated classes; making a prioritization determination, wherein the prioritization determination comprises determining that there is at least one user generated class which: has a higher priority than the second user generated class; and corresponds to a well to which the threshold number of cells have not been routed; and determining, using at least the priority determination, to route that cell to waste.

[0049] In some embodiments, the method further comprises: determining an imaged pattern and a routed pattern using at least, for each cell from the set of one or more additional cells: receiving a first time, wherein the first time is when that cell passes through a first location in a cell analyzer; receiving a second time, wherein the second time is when that cell has traveled a distance from the first location in the cell analyzer; and adding the first time to the imaged pattern and the second time to the routed pattern; and periodically, with a frequency of one time per pattern period: determining a delay associated with traveling the distance from the first location in the cell analyzer using at least an offset between the imaged pattern and routed patterns over a most recent preceding pattern period; and resetting the imaged pattern and the routed pattern.

[0050] In some embodiments, the pattern period is one second.

[0051] In some embodiments, for each cell from the set of additional cells, receiving one or more cell images depicting that cell comprises receiving the one or more cell images depicting that cell over a network connection.

[0052] In some embodiments, for each cell from the set of additional cells, receiving one or more cell images depicting that cell comprises capturing the one or more images depicting that cell using an imaging device.

[0053] In one aspect, the present disclosure also provides a system comprising a processing module to perform a method comprising: performing an initial automatic class generation comprising, for each of a plurality of cells, determining an automatically generated class for that cell by applying a clustering algorithm; storing, in a non-transitory computer readable medium: a plurality of user generated classes; and for each of the user generated classes, a membership condition for that class; after the initial automatic class generation, for each of a set of additional cells, receiving one or more cell images depicting that cell; and for a cell from the set of one or more additional cells: determining an automatically generated class for that cell by applying the clustering algorithm; and for a user generated class from the plurality of user generated classes, determining that that cell corresponds to that user generated class using at least a determination that that cell satisfies the membership condition for that user generated class.

[0054] In some embodiments, the clustering algorithm clusters cells in a feature space, wherein the feature space has at least four dimensions; and for each user generated class from the plurality of user generated classes, the membership condition for that class uses at least a location in a two dimensional space.

[0055] In some embodiments, the two dimensional space comprises an array of locations; and for each user generated class from the plurality of user generated classes, the membership condition for that class is having a location in a subset of the array of locations which corresponds to that user generated class.

[0056] In some embodiments, the method further comprises displaying an interface which: displays data points at locations in the two dimensional space using at least locations of the plurality of cells in feature space, wherein each of the data points corresponds to one or more cells from the plurality of cells; and displays the data points with characteristics corresponding to the automatically generated classes of the cells corresponding to those data points.

[0057] In some embodiments, the characteristics corresponding to the automatically generated classes are colors.

[0058] In some embodiments, for the cell from the set of one or more additional cells:determining the user generated class to which that cell corresponds is performed while that cell is flowing through a flow channel; and the method further comprises routing that cell to a particular well corresponding to the user generated class to which that cell corresponds.

[0059] In some embodiments, the method further comprises, for the cell from the set of one or more additional cells: determining whether routing that cell to the particular well corresponding to the user generated class to which that cell corresponds results in a threshold number of cells having been routed to the particular well corresponding to the user generated class to which that cell corresponds; and determining to flush that cell to the particular well corresponding to the user generated class to which that cell corresponds using at least a determination that the threshold number of cells have been routed to the particular well corresponding to the user generated class to which that cell corresponds.

[0060] In some embodiments, for the cell from the set of one or more additional cells, the threshold number of cells is a maximum number of cells collectable in the particular well corresponding to the user generated class to which the particular well corresponds.

[0061] In some embodiments, the method further comprises, for a second cell from the set of one or more additional cells: determining that that cell corresponds to a second user generated class from the plurality of user generated classes; making a prioritization determination, wherein the prioritization determination comprises determining that there is at least one user generated class which: has a higher priority than the second user generated class; and corresponds to a well to which the threshold number of cells have not been routed; and determining, using at least the priority determination, to route that cell to waste.

[0062] In some embodiments, the method further comprises: determining an imaged pattern and a routed pattern using at least, for each cell from the set of one or more additional cells: receiving a first time, wherein the first time is when that cell passes through a first location in a cell analyzer; receiving a second time, wherein the second time is when that cell has traveled a distance from the first location in the cell analyzer; and adding the first time to the imaged pattern and the second time to the routed pattern; and periodically, with a frequency of one time per pattern period: determining a delay associated with traveling the distance from the first location in the cell analyzer using at least an offset between the imaged pattern and routed patterns over a most recent preceding pattern period; and resetting the imaged pattern and the routed pattern.

[0063] In some embodiments, the pattern period is one second.

[0064] In some embodiments, for each cell from the set of additional cells, receiving one or more cell images depicting that cell comprises receiving the one or more cell imagesdepicting that cell over a network connection.

[0065] In some embodiments, for each cell from the set of additional cells, receiving one or more cell images depicting that cell comprises capturing the one or more images depicting that cell using an imaging device.

[0066] In additional aspects, the present disclosure provides a method comprising: routing a first cell to a first destination from a plurality of destinations; determining whether routing the first cell to the first destination results in at least a threshold number of cells having been routed to the first destination; and in response to at least a determination that at least the threshold number of cells have been routed to the first destination, flushing the first cell to the first destination by performing one or more acts comprising introducing a flushing fluid into an upstream channel when the upstream channel has a fluidic coupling with the first destination.

[0067] In some embodiments, the method further comprises, prior to flushing the first cell to the first destination: routing a plurality of other cells to the first destination; and for each cell from the plurality of other cells, after routing that cell to the first destination, determining not to introduce the flushing fluid into the upstream channel in response at least in part to determining that the threshold number of cells has not been routed to the first destination.

[0068] In some embodiments, the plurality of destinations comprises a plurality of wells; the first destination is a first well which: is part of the plurality of wells; and is to hold a maximum number of cells; and the threshold number of cells is the maximum number of cells the first well is to hold.

[0069] In some embodiments, the method further comprises, after flushing the first cell to the first destination: breaking the fluidic coupling between the first destination and the upstream channel; and fluidically coupling the upstream channel to a second destination from the plurality of destinations.

[0070] In some embodiments, each well from the plurality of wells is associated with a priority; the method further comprises: introducing the flushing fluid into the upstream channel a plurality of times; and following each time the flushing fluid is introduced into the upstream channel, identifying an active well, wherein: the active well is a new well from the plurality of wells identified as the well which is to be fluidically coupled to the upstream channeled when next the flushing fluid is introduced into the upstream channel; the active well does not contain any cells at the time it is identified as the active well; the active well has a priority which is not lower than any other well which does not contain any cells at the time it is identified as the active well; and the active well has a priority which is not higher than the priority of any wellthat does contain any cells at the time it is identified as the active well; and wherein each time the flushing fluid is introduced into the upstream channel, a different well from the plurality of wells is the active well, and the well which is then the active well is fluidically coupled with the upstream channel.

[0071] In some embodiments, the first cell is of a first type; and the method further comprises, after flushing the first cell to the first destination, routing a second cell of the first type to waste.

[0072] In some embodiments, routing the first cell to the first destination comprises, while the first cell is at a location in a flow channel upstream of the upstream channel: opening a first valve, wherein the first valve is downstream of the location of the first cell by a first distance and is between the flow channel the upstream channel; and closing a second valve, wherein the second valve is downstream of the location of the first cell by a first distance and is between the flow channel and a second channel.

[0073] In some embodiments, the method further comprises: receiving a delay value, wherein the delay value is a time for traveling the first distance from the location in the flow channel; and determining when to open the first valve and close the second valve using at least the delay value.

[0074] In some embodiments, the method is performed using a field programmable gate array.

[0075] In some embodiments, the field programmable gate array is a part of a cell analysis system.

[0076] In one aspect, the present disclosure also provides a system comprising a processing module to perform a method comprising: routing a first cell to a first destination from a plurality of destinations; determining whether routing the first cell to the first destination results in at least a threshold number of cells having been routed to the first destination; and in response to at least a determination that at least the threshold number of cells have been routed to the first destination, flushing the first cell to the first destination by performing one or more acts comprising introducing a flushing fluid into an upstream channel when the upstream channel has a fluidic coupling with the first destination.

[0077] In some embodiments, the method further comprises, prior to flushing the first cell to the first destination: routing a plurality of other cells to the first destination; and for each cell from the plurality of other cells, after routing that cell to the first destination, determining not to introduce the flushing fluid into the upstream channel in response at least in part to determining that the threshold number of cells has not been routed to the first destination.

[0078] In some embodiments, the plurality of destinations comprises a plurality of wells; the first destination is a first well which: is part of the plurality of wells; and is to hold a maximum number of cells; and the threshold number of cells is the maximum number of cells the first well is to hold.

[0079] In some embodiments, the method further comprises, after flushing the first cell to the first destination: breaking the fluidic coupling between the first destination and the upstream channel; and fluidically coupling the upstream channel to a second destination from the plurality of destinations.

[0080] In some embodiments, each well from the plurality of wells is associated with a priority; the method further comprises: introducing the flushing fluid into the upstream channel a plurality of times; and following each time the flushing fluid is introduced into the upstream channel, identifying an active well, wherein: the active well is a new well from the plurality of wells identified as the well which is to be fluidically coupled to the upstream channeled when next the flushing fluid is introduced into the upstream channel; the active well does not contain any cells at the time it is identified as the active well; the active well has a priority which is not lower than any other well which does not contain any cells at the time it is identified as the active well; and the active well has a priority which is not higher than the priority of any well that does contain any cells at the time it is identified as the active well; and wherein each time the flushing fluid is introduced into the upstream channel, a different well from the plurality of wells is the active well, and the well which is then the active well is fluidically coupled with the upstream channel.

[0081] In some embodiments, the first cell is of a first type; and the method further comprises, after flushing the first cell to the first destination, routing a second cell of the first type to waste.

[0082] In some embodiments, routing the first cell to the first destination comprises, while the first cell is at a location in a flow channel upstream of the upstream channel: opening a first valve, wherein the first valve is downstream of the location of the first cell by a first distance and is between the flow channel the upstream channel; and closing a second valve, wherein the second valve is downstream of the location of the first cell by a first distance and is between the flow channel and a second channel.

[0083] In some embodiments, the method further comprises: receiving a delay value, wherein the delay value is a time for traveling the first distance from the location in the flow channel; and determining when to open the first valve and close the second valve using at least the delay value.

[0084] In one aspect, the present disclosure provides a method comprising: receiving a set of imaging signals by, for each cell from a set of cells, receiving a corresponding imaging signal indicating presence of that cell at an imaging location at a time corresponding to that imaging signal; receiving a set of routing signals by, for each cell from the set of cells, receiving a corresponding routing signal indicating that cell has traveled a distance from the imaging location at a time corresponding to the routing signal; and determining a time offset between the set of imaging signals and the set of routing signals, wherein the time offset is a delay value to use in routing cells detected at the imaging location into one of a set of channels.

[0085] In some embodiments, determining the time offset between the set of imaging signals and the set of routing signals comprises: matching a first pattern with a second pattern, wherein the first pattern is a pattern of two or more signals from the set of imaging signals, and the second pattern is a pattern of two or more signals from the set of routing signals; and defining the time offset using at least a time difference between corresponding signals in the first and second patterns.

[0086] In some embodiments, matching the first pattern with the second pattern comprises identifying the first pattern as matching the second pattern using at least sequences of time delays between consecutive signals in the first and second patterns.

[0087] In some embodiments, for each imaging signal from the set of imaging signals: that imaging signal comprises a frame number for when the cell corresponding to that imaging signal is at the imaging location; the method further comprises determining the time the cell corresponding to that imaging signal is at the imaging location using at least the frame number that is part of that imaging signal and a frame rate of a camera used for capturing images of the cells from the set of cells.

[0088] In some embodiments, for each channel from the set of channels, that channel comprises a location which is the distance from the imaging location; and for each routing signal from the set of routing signals, that signal indicates a channel from the set of channels in which the cell corresponding to that routing signal was located at the time corresponding to that routing signal.

[0089] In some embodiments, the method further comprises calculating one or more statistical measures using at least cell passage data comprising, for each routing signal from the set of routing signals, the channel in which the cell corresponding to that routing signal was located at the time corresponding to that routing signal.

[0090] In some embodiments, each cell from the set of cells has a cell type from a set of cell types; the set of channels comprises a first channel and a second channel; and the statisticalmeasures comprise, for at least one cell type from the set of cell types: a percentage of cells of that type which are collected, using at least a number of cells of that type corresponding to routing signals indicating that their corresponding cells were located in the first channel, divided by a total number of cells of that type in the set of cells; a percentage of cells of that type which are not collected using at least a number of cells of that type corresponding to routing signals indicating that their corresponding cells are located in the second channel, divided by the total number of cells of that type in the set of cells: or a combination thereof.

[0091] In some embodiments, determining the time offset between the set of imaging signals and the set of routing signals comprises determining the time offset using at least routing signals corresponding to times falling within a fixed time span preceding the determination of the time offset and imaging signals corresponding to the cells which corresponded to those routing signals.

[0092] In some embodiments, the method further comprises periodically repeating determining the time offset between the set of imaging signals and the set of routing signals, wherein the determination of the time offset is repeated with a repetition period equal in length to the fixed time span.

[0093] In some embodiments, on at least one repetition of the determination of the time offset, determining the time offset between the set of imaging signals and the set of routing signals comprises considering a carryover imaging signal, wherein: the time corresponding to the carryover imaging signal is outside of the fixed time span preceding that determination of the time offset; and the cell corresponding to the carryover imaging signal corresponds to a routing signal corresponding to a time falling within the fixed time span preceding that determination of the time offset.

[0094] In some embodiments, the method comprises, for each of a plurality of repetitions of the determination of the time offset, during the fixed time span which begins with that repetition, route a plurality of cells using the time offset determined at the beginning of that fixed time span.

[0095] In some embodiments, the fixed time span is one second.

[0096] In some embodiments, for each routing signal from the set of routing signals, that routing signal comprises a change in intensity of a laser indicating passage of the cell corresponding to that routing signal through a channel from the set of channels.

[0097] In some embodiments, receiving the set of imaging signals comprises, for each imaging signal from the set of imaging signals, receiving that imaging signal over a network connection; and receiving the set of routing signals comprises, for each routing signal from theset of routing signals, receiving that routing signal over the network connection.

[0098] In some embodiments, the method is performed using a processor located proximate a cell analysis system used to capture images of the cells from the set of cells.

[0099] In one aspect, the present disclosure also provides a system comprising a processing module to perform a method comprising: receiving a set of imaging signals by, for each cell from a set of cells, receiving a corresponding imaging signal indicating presence of that cell at an imaging location at a time corresponding to that imaging signal; receiving a set of routing signals by, for each cell from the set of cells, receiving a corresponding routing signal indicating that cell has traveled a distance from the imaging location at a time corresponding to the routing signal; and determining a time offset between the set of imaging signals and the set of routing signals, wherein the time offset is a delay value to use in routing cells detected at the imaging location into one of a set of channels.

[0100] In some embodiments, determining the time offset between the set of imaging signals and the set of routing signals comprises: matching a first pattern with a second pattern, wherein the first pattern is a pattern of two or more signals from the set of imaging signals, and the second pattern is a pattern of two or more signals from the set of routing signals; and defining the time offset using at least a time difference between corresponding signals in the first and second patterns.

[0101] In some embodiments, matching the first pattern with the second pattern comprises identifying the first pattern as matching the second pattern using at least sequences of time delays between consecutive signals in the first and second patterns.

[0102] In some embodiments, for each imaging signal from the set of imaging signals: that imaging signal comprises a frame number for when the cell corresponding to that imaging signal is at the imaging location; the method further comprises determining the time the cell corresponding to that imaging signal is at the imaging location using at least the frame number that is part of that imaging signal and a frame rate of a camera used for capturing images of the cells from the set of cells.

[0103] In some embodiments, for each channel from the set of channels, that channel comprises a location which is the distance from the imaging location; and for each routing signal from the set of routing signals, that signal indicates a channel from the set of channels in which the cell corresponding to that routing signal was located at the time corresponding to that routing signal.

[0104] In some embodiments, the method further comprises calculating one or more statistical measures using at least cell passage data comprising, for each routing signal fromthe set of routing signals, the channel in which the cell corresponding to that routing signal was located at the time corresponding to that routing signal.

[0105] In some embodiments, each cell from the set of cells has a cell type from a set of cell types; the set of channels comprises a first channel and a second channel; and the statistical measures comprise, for at least one cell type from the set of cell types: a percentage of cells of that type which are collected, using at least a number of cells of that type corresponding to routing signals indicating that their corresponding cells were located in the first channel, divided by a total number of cells of that type in the set of cells; a percentage of cells of that type which are not collected using at least a number of cells of that type corresponding to routing signals indicating that their corresponding cells are located in the second channel, divided by the total number of cells of that type in the set of cells: or a combination thereof.

[0106] In some embodiments, determining the time offset between the set of imaging signals and the set of routing signals comprises determining the time offset using at least routing signals corresponding to times falling within a fixed time span preceding the determination of the time offset and imaging signals corresponding to the cells which corresponded to those routing signals.

[0107] In some embodiments, the method further comprises periodically repeating determining the time offset between the set of imaging signals and the set of routing signals, wherein the determination of the time offset is repeated with a repetition period equal in length to the fixed time span.

[0108] In some embodiments, on at least one repetition of the determination of the time offset, determining the time offset between the set of imaging signals and the set of routing signals comprises considering a carryover imaging signal, wherein: the time corresponding to the carryover imaging signal is outside of the fixed time span preceding that determination of the time offset; and the cell corresponding to the carryover imaging signal corresponds to a routing signal corresponding to a time falling within the fixed time span preceding that determination of the time offset.

[0109] In some embodiments, the method comprises, for each of a plurality of repetitions of the determination of the time offset, during the fixed time span which begins with that repetition, route a plurality of cells using the time offset determined at the beginning of that fixed time span.

[0110] In some embodiments, the fixed time span is one second.

[0111] In some embodiments, for each routing signal from the set of routing signals, thatrouting signal comprises a change in intensity of a laser indicating passage of the cell corresponding to that routing signal through a channel from the set of channels.

[0112] In some embodiments, receiving the set of imaging signals comprises, for each imaging signal from the set of imaging signals, receiving that imaging signal over a network connection; and receiving the set of routing signals comprises, for each routing signal from the set of routing signals, receiving that routing signal over the network connection.

[0113] In some embodiments, the processing module is located proximate a cell analysis system used to capture images of the cells from the set of cells.

[0114] Additional aspects and advantages of the present disclosure will become readily apparent to those skilled in this art from the following detailed description, wherein only illustrative embodiments of the present disclosure are shown and described. As will be realized, the present disclosure is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the disclosure. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive.INCORPORATION BY REFERENCE

[0115] All publications, patents, and patent applications mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference. To the extent publications and patents or patent applications incorporated by reference contradict the disclosure contained in the specification, the specification is intended to supersede and / or take precedence over any such contradictory material.BRIEF DESCRIPTION OF THE DRAWINGS

[0116] FIG. 1 illustrates, in one example, how a convolution layer may identify features in an input image.

[0117] FIG. 2 illustrates, in one example, how a transpose convolution layer may operate.

[0118] FIGS. 3A-3E illustrate, in one example, morphometric features which may be used as dimensions in feature space for cell images.

[0119] FIG. 4 provides, in one example, a high level flowchart of an example community detection method which may be used for classifying cells.

[0120] FIG. 5 provides, in one example, a high level illustration of a process which may be used to convert representations of cells in relatively high dimensional feature space to relatively low dimensional visualization space to bounded and quantized display space.

[0121] FIG. 6 illustrates, in one example, an interface which may be presented to a user.

[0122] FIG. 7 provides, in one example, a high level overview of a process which may be implemented based on this disclosure to allow and support the creation of user defined classes.

[0123] FIG. 8 illustrates, in one example, a method by which cells may be sorted.

[0124] FIG. 9 provides, in one example, a diagram of components which may be used in cell sortation.

[0125] FIG. 10 provides, in one example, a high level flowchart of acts which may be used to support a priority based approach to cell flushing.

[0126] FIG. 11 provides, in one example, a high level illustration of a method which may be performed to determine a delay between when a cell is imaged and when its passage is detected after being routed.

[0127] FIG. 12 provides, in one example, a concrete example of how a determination of a delay between patterns may be made.

[0128] FIG. 13 provides, in one example, a high level flowchart of an example cell classification method.

[0129] FIG. 14 provides, in one example, a high level flowchart of an example cell classification method.

[0130] FIG. 15 provides, in one example, a high level flowchart of an example cell collection method.

[0131] FIG. 16 provides, in one example, a high level flowchart of an example cell collection method.DETAILED DESCRIPTION

[0132] The following detailed description of certain examples will be better understood when read in conjunction with the appended drawings. To the extent that the figures illustrate diagrams of the functional blocks of hardware components, the functional blocks are not necessarily indicative of the division between those components. Thus, for example, one or more of the functional blocks (e.g., processors or memories) may be implemented in a single piece of hardware (e.g., a general purpose signal processor or random access memory, hard disk, or the like). Similarly, the programs may be stand-alone programs, may be incorporatedas subroutines in an operating system, may be functions in an installed software package, and the like. The various examples are not limited to the arrangements and instrumentality shown in the drawings.

[0133] I. Terminology

[0134] Throughout this specification and the claims which follow, unless the context requires otherwise, the word “comprise,” and variations such as “comprises” and “comprising” means various components may be co-jointly employed in the methods and articles (e.g., compositions and apparatuses including device and methods). For example, the term “comprising” will be understood to imply the inclusion of any stated elements or acts but not the exclusion of any other elements or acts. In general, any of the apparatuses and methods described herein are inclusive, but all or a sub-set of the components and / or acts may alternatively be exclusive and may be expressed as “consisting of’ or alternatively “consisting essentially of’ the various components, acts, sub-components, or sub-acts. Furthermore, references to “one example” are not intended to be interpreted as excluding the existence of additional examples that also incorporate the recited features. The use of “including,” “comprising,” “having,” or “in which,” and variations thereof, herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.

[0135] As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. As used herein, the term “and / or” includes any and all combinations of one or more of the associated listed items and may be abbreviated as “ / ”.

[0136] When used in the claims, the term “set” is one or more things which are grouped together. Similarly, “based on” indicates that one thing is determined at least in part by what it is specified as being “based on.” For example, a statement that an act is performed “based on” something may be understood as indicating that it is performed using at least that which it is identified as being “based on.” Where one thing is required to be exclusively determined by another thing, then that thing will be referred to as being “exclusively based on” that which it is determined by.

[0137] Spatially relative terms, such as “under,” “below,” “lower,” “over,” “upper,” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if adevice in the figures is inverted, elements described as “under” or “beneath” other elements or features may then be oriented “over” the other elements or features. Thus, the term “under” may encompass both an orientation of over and under. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the spatially relative descriptors used herein interpreted accordingly. Similarly, the terms “upwardly,” “downwardly,” “vertical,” “horizontal,” and the like are used herein for the purpose of explanation only unless specifically indicated otherwise. In addition, terms such as “outer” and “inner” are used herein for purposes of description and are not intended to indicate or imply relative importance or significance.

[0138] When a feature or element is herein referred to as being “on” or “over” another feature or element, it may be directly on or indirectly on the other feature or element; or intervening features and / or elements may also be present. In other words, when a feature or element is herein referred to as being “on” or “over” another feature or element, it may be indirectly on or directly on the other feature or element. In contrast, when a feature or element is referred to as being “directly on” or “directly over” another feature or element, there are no intervening features or elements present.

[0139] When a feature or element is referred to as being “mounted,” “connected,” “supported,” “attached,” or “coupled” to another feature or element, it may be directly mounted, connected, supported, attached, or coupled to the other feature or element or intervening features or elements may be present. In contrast, when a feature or element is referred to as being “directly mounted,” “directly connected,” “directly supported,” “directly attached,” or “directly coupled” to another feature or element, there are no intervening features or elements present. Although described or shown with respect to one embodiment, the features and elements so described or shown may apply to other embodiments. It will also be appreciated by those skilled in the art that references to a structure or feature that is disposed “adjacent” another feature may have portions that overlap or underlie the adjacent feature.

[0140] As used herein in the specification and claims, including as used in the examples and unless otherwise expressly specified, the terms “about” or “approximately” for any numerical values or ranges indicate a suitable dimensional tolerance, or other form of reasonable expected range, that allows the part or collection of components to function for its intended purpose as described herein. More specifically, “about” or “approximately” may refer to the range of values that are within ±10% of the recited value, including ±0 (e.g., “about 100” may refer to the range of values from 90 to 110, including 90, 110, 100, and all other values within the range of 90 and 110). Any numerical values given herein include about or approximately that value unless the context indicates otherwise. For example, if the value “10”is disclosed, then “about 10” is also disclosed. Any numerical range recited herein is intended to include all sub-ranges subsumed therein. The terms “approximately” and “about” are thus utilized herein to represent the degree by which a quantitative representation may vary from a stated reference without resulting in a change in the basic function of the subject matter at issue.

[0141] The term “substantially” is also utilized herein to represent the degree by which a quantitative representation may vary from a stated reference without resulting in a change in the basic function of the subject matter at issue. The term “substantially” shall therefore be understood to include a range of conditions or results that provide a functional equivalent to an explicitly stated condition or result. For instance, if a task is “substantially complete,” the result of the task having been substantially completed is functionally equivalent to the result that may have been achieved if the task had been perfectly completed. As another non-limiting example, a component that is “substantially straight” or “substantially flat,” an apparatus including a component that is “substantially straight” or “substantially flat” may provide a result or effect that is functionally equivalent to a result or effect that may be achieved by the same apparatus including the same component in a perfectly straight or perfectly flat configuration. The range implied by the term “substantially” includes the perfect result that is within that range. Thus, the term “substantially complete” shall be read as including “perfectly complete” while also including a range of completeness that is functionally equivalent to perfectly complete. As another example, terms such as “substantially straight” and “substantially flat” shall be read as including “perfectly straight” and “perfectly flat,” respectively; while also including a range of straightness or flatness that is functionally equivalent to perfectly straight or flat, respectively. As with the terms “approximately” and “about,” the term “substantially” may indicate a suitable dimensional tolerance, or other form of reasonable expected range, that allows a part or collection of components to function for its intended purpose as described herein.

[0142] The term “perpendicular” shall be understood to include arrangements where one element (e.g., surface, feature, component, axis, etc.) defines an angle of 90 degrees with another element (e.g., surface, feature, component, axis, etc.). The term “perpendicular” shall also be understood to include arrangements where one element (e.g., surface, feature, component, axis, etc.) defines an angle of approximately 90 degrees with another element (e.g., surface, feature, component, axis, etc.).

[0143] It is also understood that when a value is disclosed that “less than or equal to” the value, “greater than or equal to the value,” and possible ranges between values are also disclosed, as appropriately understood by the skilled artisan. For example, if the value “X” isdisclosed the “less than or equal to X” as well as “greater than or equal to X” (e.g., where X is a numerical value) is also disclosed. It is also understood that the throughout the application, data is provided in a number of different formats, and that this data, represents endpoints and starting points, and ranges for any combination of the data points. For example, if a particular data point “10” and a particular data point “15” are disclosed, it is understood that greater than, greater than or equal to, less than, less than or equal to, and equal to 10 and 15 are considered disclosed as well as between 10 and 15. It is also understood that each unit between two particular units are also disclosed. For example, if 10 and 15 are disclosed, then 11, 12, 13, and 14 are also disclosed.

[0144] Although the terms “first” and “second” may be used herein to describe various features / elements (including acts), these features / elements are not limited by these terms, unless the context indicates otherwise. These terms are used to distinguish one feature / element from another feature / element, and unless specifically pointed out, do not denote a certain order. Thus, a first feature / element discussed below may be termed a second feature / element, and similarly, a second feature / element discussed below may be termed a first feature / element without departing from the teachings of the present disclosure. The terms “first,” “second,” and “third,” etc. are thus used merely as labels, and are not intended to impose numerical requirements on their objects.

[0145] As used herein, the terms “system,” “apparatus,” and “device” may each include a plurality of components having various kinds of structural and / or functional relationships with each other.

[0146] The term “fluid” shall be understood to include liquids and gases. Similarly, “fluidic communication” shall be understood to include the communication of liquids and the communication of gases.

[0147] The term “morphometric feature” of a cell as used herein generally refers to the form, structure, and / or configuration of the cell. The morphometric features of a cell may comprise one or more aspects of a cell’s appearance, such as, for example, shape, size, arrangement, form, structure, pattern(s) of one or more internal and / or external parts of the cell, or shade (e.g., color, greyscale, etc.). Non-limiting examples of a shape of a cell may include, but are not limited to, circular, elliptic, dumbbell, star-like, flat, scale-like, columnar, invaginated, having one or more concavely formed walls, having one or more convexly formed walls, prolongated, having appendices, having cilia, having angle(s), having corner(s), etc. A morphometric feature of a cell may be visible with treatment of a cell (e.g., small molecule or antibody staining). In other examples, the morphometric feature of the cell may not and neednot require any treatment to be visualized in an image or video.

[0148] The terms “unstructured” or “unsorted,” as used interchangeably herein, generally refers to a mixture of cells (e.g., an initial mixture of cells) that is not substantially sorted (or rearranged) into separate partitions. An unstructured population of cells may comprise at least two types of cells that may be distinguished by exhibiting different properties (e.g., one or more physical properties, such as one or more different morphologic features as disclosed herein). The unstructured population of cells may be a random (or randomized) mixture of the at least two types of cells. The cells as disclosed herein may be viable cells. A viable cell, as disclosed herein, may be a cell that is not undergoing necrosis or a cell that is not in an early or late apoptotic state. In other examples, the cells may not and need not be viable (e.g., fixed cells).

[0149] The term “resilient” as used herein refers to a material property where the material has shape memory and stiffness such that it is structurally biased toward a neutral shape or structural arrangement. As an example, a resilient member may have a resilient bias toward a neutral shape or structural arrangement where the resilient member is straight along a central longitudinal axis. That same resilient member may be deformed relative to the neutral shape or structural arrangement, such as by being bent away from that central longitudinal axis, in response to a force (e.g., when a force is imparted on the resilient member, where the force has a directional component that is transverse to the central longitudinal axis). While the resilient member is being deformed relative to the neutral shape in response to the force, the resilient member may be under stress whereby the resilient property of the material of the resilient member generates a force in a direction that is opposite to the force that is causing the deformation of the resilient member. In other words, the resilient property of the material of the resilient member may impart a mechanical bias urging the resilient member back toward the neutral shape or structural arrangement. After the force causing the deformation of the resilient member is removed, the resilient bias of the material of the resilient member may cause the resilient member to return to (or at least toward) the neutral shape or structural arrangement. While the foregoing example provides a straight configuration as a neutral shape or structural arrangement, other examples of resilient members may have other kinds of neutral shapes or structural arrangements.

[0150] II. Feature Space for Cell Images

[0151] Cell images may be represented as points in a space (referred to herein as “feature space”) defined by the information included in the image. To illustrate, consider a black and white cell image encoded as a 256x256 array of pixels, each of which has a value ranging from 0 (for black pixels) to 255 (for white pixels). One way for such an image to be represented asa location feature space may be to use a feature space with one dimension (i.e., a coordinate determining a position in the feature space, just as length, width and height determine a physical position in three dimensional physical space), for each pixel (which, in this example, may be 256 * 256 = 65,536 dimensions). In this this way, each cell image (and, indeed, any image) encoded in the specified format may be represented as a unique location in the feature being considered.

[0152] In one example, while representing cell images as being located in a feature space, which directly translates pixels into dimensions, is possible, in this example this does not provide anything beyond the image itself. However, it is possible for representing an image as a location in space to provide advantages over the image itself. An example which may illustrate this is representing images black circles which are encoded in the same 256x256, black and white format described above may as locations in feature space. In this case, rather than using a feature space with one dimension for each pixel, the images may be represented as locations in a feature space having only three dimensions - one dimension for the x coordinate of the circle’s center, one dimension for the y coordinate of the circle’s center, and one dimension for the circle’s radius. This type of representation may have significant advantages over the original image. For example, rather than being stored using 65,536 values - i.e., one value for each pixel - the location of a black and white circle image in this feature space may be stored using only three values - i.e., one for each dimension.

[0153] The approach described above - i.e., representing images as locations in a feature space whose dimensions are based on the information content of the images to be so represented - may also be applied to images which are more complicated than images of geometric primitives. However, for these more complicated types of images, such as cell images, determining appropriate dimensions for the feature space in which the images may be located may not be straightforward. As a result, various tools may be used to identify those dimensions, and to generate an embedding (i.e., a vector having one value for each of the dimensions in the applicable feature space) from an input image. For instance, in some cases, dimensions may be identified through use of an encoder comprising a neural network (e.g., a neural network with a plurality of convolution layers, a vision transformer, or other appropriate type of neural network), which may identify features of an input image and generate a reduced dimensionality output image, and a plurality of transpose convolution layers, which may generate an increased dimensionality output image based on features included in an input image. Illustrations of potential operations which may be performed by the layers of such a network are discussed below in the context of FIGS. 1 and 2.

[0154] As shown in FIG. 1, a convolution layer may identify features in an input image 101, and generate a reduced dimensionality output image 102 by convolving the input image 101 with a convolution filter 103. Specifically, FIG. 1 illustrates how convolution of square input image with n+1 pixel long sides may be used to generate a square output image with n-1 pixel long sides through convolving the square input image with a 3x3 convolution filter. To implement this type of operation in a neural network, the input and output images may each be represented by layers in the network. The weights on the connections between those layers may then define the convolution operation. For example, given a 3x3 convolution filter such as shown in FIG. 1, a pixel at location (a,b) in the output image may have a weight for the pixel at location (a-l,b-l) of the input image equal to the top left value in the convolution filter, a weight for the pixel at location (a,b-l) of the input image equal to the top center value in the convolution filter, and may continue in this pattern for the remainder of the square extending from (a-l,b-l) to (a+l,b+l) in the input image, while having weight values of zero elsewhere. The particular values in the filter may then define the feature of the input image which may be captured in a convolution layer’s output image. For example, a 3x3 filter with a value of 8 at its center and -1 elsewhere such as shown in table 1, below, may capture the edges from the input image.[ -1 -1 -1 ][ -1 8 -1 ][ -1 -1 -1 ]Table 1Multiple such convolution layers may be arranged in a series (i.e., the output image of one layer may serve as the input image to the next) to further refine the features and reduce the dimensionality of the ultimate output image created by the convolution layers.

[0155] As shown in FIG. 2, a transpose convolution layer may function in a manner similar to that described above for a convolution layer, with a filter 201 being used to create an output image 202 from an input image 203. However, in one example, so that the dimensionality of the output image 202 is greater than that of the input image 203, the input image 203 may be augmented by adding zeros around its periphery and between its elements, with the filter 201 only being applied to the expanded image 204 obtained using this augmentation. By chaining together transpose convolution layers which operate in a manner such as illustrated in FIG. 2, with the first transpose convolution layer taking the output 102 of the last convolution layer as input 203, it is possible to obtain a final output image which has the same resolution as the original input image to the first convolution layer. This final output image may then becompared with the original image provided as input to the first convolution layer, and used with a loss function (e.g., mean squared error, binary cross entropy) to allow a neural network comprising convolution and transpose convolution layers to be trained using unlabeled images of the type to be represented (e.g., cell images). The pixels in the smallest output image (i.e., the output image created by the final convolution layer which is provided as input to the first transpose convolution layer) may then be treated as dimensions in the feature space where the images may be located. Similarly, the convolution layers may be used as an encoder by treating the values of the pixels in the smallest output image as the embedding for that image.

[0156] Other approaches to defining a space for representing complex image types are also possible, and may be used in some implementations of the disclosed technology. For example, rather than using machine learning to identify dimensions of a space for representing images, it is possible that physical features of objects depicted in the images may be treated as spatial dimensions, and that those features may be identified using dedicated computer vision functions to generate embeddings for particular images. As an illustration of this, FIGS. 3A- 3E illustrate morphometric features which may be extracted from cell images and used as dimensions in a feature space, either in addition to, or as alternatives to, dimensions derived using machine learning such as described above. Further approaches to identifying dimensions for feature spaces in which images may be represented, as well as for generating embeddings for representing images in those spaces, are also possible, and may be utilized in various applications of the disclosed technology. For example, principal component analysis, as well as approaches such as described in Salek, et al., Realtime morphological characterization and, sorting of unlabeled viable cells using deep learning, available at https: / / www.biorxiv.org / content / 10.1101 / 2022.02.28.482368v2 or Bank, et. al., Autoencoders, available at https: / / arxiv.org / pdf / 2003.05991.pdf, the disclosure of each of which is hereby incorporated by reference in its entirety, may also be applied in some cases.

[0157] While the above description of feature spaces for cell images has provided various examples, such examples are intended to be illustrative only, not to imply limitations. For instance, FIGS. 1 and 2 illustrated various items as having particular dimensions (e.g., 3x3 convolution filter in FIG. 1; 3x3 transpose convolution filter, 3x3 input image, and 5x5 output image in FIG. 2). However, those dimensions are used only for illustration, and other dimensions may also be used. For example, convolution and transpose convolution filters having dimensions other than 3x3 may be used, and transpose convolution layers may have input images with sizes other than 3x3 and output images with sizes other than 5x5. Similarly, while the output images of FIGS. 1 and 2 may be obtained by applying filters on a pixel bypixel basis (e.g., a filter may be convolved with one 3x3 area, then moved one pixel and convolved with another 3x3 area, etc.) it is also possible that filters may be applied on a different basis in some scenarios (e.g., a filter may be convolved with one 3x3 area, then moved two pixels and convolved with another 3x3 area, etc.). Similarly, the amount of zeros added between pixels in, and / or around the periphery of, an input image to create an enhanced image 204 may be more than the single rows and columns of zeros illustrated in FIG. 2.

[0158] It is also possible that additional operations beyond convolving and adding zeros may be used to increase or reduce the size of images when a machine learning approach is applied. For example, pooling, downsampling, upsampling, or a combination thereof, may be used to increase or decrease the size of images as appropriate in some cases. Indeed, in some cases approaches such as pooling, downsampling or upsampling may be the only operations which may be used to reduce size. For instance, in some cases a convolution layer may include augmenting an input image by adding zero padding so that the output provided by applying a convolution filter may have the same dimension as the input image, and then the size of that output image may be reduced by application of a pooling operation. Other suitable approaches may be employed. Accordingly, the above variations, like the discussions of FIGS. 1 and 2 themselves, are to be illustrative only, and not limiting.

[0159] In an example to further illustrate potential variations on the approaches described above, the loss function may be used when using neural networks to identify the dimensions of a feature space in which cell images may be represented. While, as noted above, the use of convolution and transpose convolution layers may allow such a neural network to be trained on unlabeled data based on how well it may reconstruct a cell image, in some cases labeled data may also be used in the training process. For example, a loss function may be implemented to combine the loss based on how well the neural network may reconstruct a cell image (referred to as “reconstruction loss”), with how well the dimensions in a particular feature space function in allowing a cell image to be classified. For instance, the values of pixels at the feature space dimensions may be used as inputs to a dense network with output nodes corresponding to labels of cell images with ground truth (e.g., provided by a human annotator) classifications, and the loss from comparing the ground truth classification with the classifications provided by the dense network may be combined with the reconstruction loss when training the convolution layers of the network. Also, while the example of representing a circle using a feature space defined by the circle’ s radius and the coordinates of its center allowed the circle’s location in feature space to completely capture all information from the original image, not all embeddings will provide such a lossless encoding. Accordingly, the above descriptions of howdimensions of an embedding space for images such as cell images, as well as the analogy of such embedding spaces to other embedding spaces such as geometric embedding spaces, is to be illustrative only, and not limiting.

[0160] III. Clustering Cells

[0161] Representations of cell images as locations in feature space using techniques such as described above in the context of FIGS. 1-2 and 3 A-3E may be used to support classification of the imaged cells for later analysis, sorting or other applications. For example, FIG. 4 provides a high level flow chart of a community detection method which may be used for classifying cells in some implementations of the disclosed technology. As shown in that figure, when cells are represented as locations in feature space, those locations may be used to define, in block 401, connections between each of the cells and its K nearest neighbors, where K is an integer value (e.g., 50, 100, etc.). After the connections with the K nearest neighbors have been defined, an initial partition of the cells in the feature space may be created in block 402. This partition organizes the cell representations into communities, and may initially be a singleton partition - i.e., one in which each cell representation in the feature space is treated as its own community.

[0162] After a partition is created in block 402, it may be improved in block 403 by modifying how the cell representations are organized into communities using a quality function. For example, in some cases, the quality of a partition may be measured by its modularity - i.e., the difference between the actual number of edges in a community and the expected number of such edges, as may be calculated using equation 1, below:Equation 1In equation 1, H is the modularity score, m, is the total number of edges in the network made up of all of the cell representations in the feature space, Kcis the sum of the degrees of the cell representations in community c, ecis the actual number of edges in community c, and y is a resolution parameter which is greater than zero, where higher resolution leads to more communities and lower resolution leads to fewer communities. In a case where equation 1 is used as a quality function, the partition may be improved by moving representations in block 404 by evaluating, for each of the representations, whether moving that representation to a neighboring community may increase the modularity score. If so, then that representation may be moved to the community associated with the higher modularity score, and this movement may be repeated until there are no further moves that may be made without lowering themodularity score of the partition,

[0163] As shown in FIG. 4, in addition to moving representations in block 404, improving a partition based on a quality function may also include refining the partition in block 405. This may be done, for example, by treating each of the cell representations as its own community, and merging communities to the extent such mergers may improve the quality function, while limiting such mergers to only taking place within communities identified previously when moving representations in block 404. In this way, if communities are created using a process which may differ between iterations (e.g., if a representation is moved from one community to another in a probabilistic manner), refining the partition in block 405 may result in sub communities being identified and communities identified in the movement 404 of representations being split.

[0164] However it is performed, after block 403 ’s improvement of the partition based on the quality function is completed, the community detection method of FIG. 4 may continue with aggregating the network made up of cell representations in feature space in block 406. This aggregation may be done by treating each of the communities identified in block 403 as a node in a super-network, and this super-network may then be improved in bock 407 using techniques similar to those discussed above in the context of block 403 for improving the partition of the network made up of cell representations in feature space. Once the improvement of block 407 is completed, a determination may be made in block 408 of whether the illustrated community detection process is to be iterated. This determination may be made using a function in which: (1) the first time the determination is made, the function may unconditionally determine that the process is to continue to iterate, (2) on each subsequent determination, the function may determine that the process is to continue to iterate unless no changes had been made since the previous determination. If the determination of block 408 is that the process is to iterate, then it may return to block 203 to improve partition (which, in this case may be the partition most recently created through improving the aggregated network in block 407). In another example, if the determination of block 408 is that the process is not to iterate, then the process may be treated as done and terminate in block 409.

[0165] Once cell representations have been grouped, such as using a community detection process as illustrated in FIG. 4, the groupings may be used for various purposes. For example, in the case where the cells represented as locations in feature space are cells from a patient sample, the various cell groups may be compared with a database of previously identified and labeled archetypal cells, and the cells in the groups which are the closest to the various archetypes may be labeled or otherwise identified as matching the corresponding archetypes.As another example of a potential application of groupings such as may be derived using a process as shown in FIG. 4, in some cases the feature space may be projected down to a two dimensional space (discussed in more detail in section IV, below) such as may be displayed on a screen, and the various groups may be used to help illustrate relationships from the high dimensional in the lower dimensional display space (e.g., by coloring cell representations and connections between neighboring cell representations in different colors to visually distinguish groups from each other). Other applications, such as using groups such as shown in FIG. 4 for cell sorting (discussed in more detail in Section VI, below) are also possible, and may be implemented by those of skill in the art without undue experimentation in light of this disclosure. Accordingly, the above examples of potential applications for grouping cell representations are to be understood as being illustrative only, and not treated as limiting.

[0166] Variations are also possible in aspects of the above discussion beyond differences in how cell groupings may be applied. For example, while the above discussion of moving representations in block 404 of FIG. 4 explains that this movement may include checking each representation to see if moving it may improve a quality score, moving it if such a move improves the quality score, and iterating this process until there are no further moves which may result in quality score improvements, other approaches to moving representations are also possible. For instance, in some cases, when iterating the movement of representations, only representations whose communities had changed in the previous iteration may be checked for potential moves, rather than checking all representations on each iteration as described. As another example of a potential variation, it is also possible that different implementations of community detection algorithms (e.g., as shown in FIG. 4) may use different quality functions when evaluating partitions. For instance, in some cases, rather than using modularity to evaluate partition quality, some implementations may use a Constant Potts Model quality function, such as equation 2, below.Equation 2In Equation 2, P is the quality function score, ncthe number of nodes in community c, and all other symbols have the same meanings as in equation 1. Other types of quality functions, such as using normalized mutual information as described in Danon, et al., Comparing community structure identification, J. Stat. Meeh. Theor. Exp (2005) 2005(9):P09008-228, the disclosure of which is incorporated by reference herein in its entirety, may also be used in variousimplementations.

[0167] Variations are also possible in how the decision of block 408 of whether to terminate or iterate a method such as shown in FIG. 4 may be made. For example, rather than continuing to iterate until no improvements are detected across iterations, in some cases a method such as shown in FIG. 4 may continue for a set number of iterations, or may continue until the improvement from one iteration to the next fell below some threshold value even though it may not have ceased all together. It is also possible that approaches to grouping cells represented as locations in feature space, such as those described in Traag, et. al., From Louvain to Leiden: guaranteeing well-connected communities, Sci Rep 9, 5233 (2019), available at https: / / doi.org / 10.1038 / s41598-019-41695-z, or Yao et al., Cell Type Classification and Unsupervised Morphological Phenotyping From Lo -Resolution Images Using Deep Learning, Sci. Rep. 9, 13467 (2019), available at https: / / doi.org / 10.1038 / s41598-019-50010- 9, the disclosures of each of which are hereby incorporated by reference in their entirety, may also be used. Accordingly, the description and examples of how grouping may be implemented set forth above may be understood as being illustrative only, and not limiting.

[0168] IV. Visualization

[0169] Representing cells as locations in feature space may also be used for visualization, for example, by converting the representations in the relatively high dimensional feature space (e.g., a feature space having 150 dimensions) to representations in a relatively low dimensional visualization space (e.g., a two dimensional space such as that depicted on a computer monitor), and from there potentially to a bounded and quantized display space (e.g., a portion of the visualization space which includes cell representations and which is divided into a grid, such as a 2048x2048 grid). This may be done, for example, using a process such as shown in FIG. 5. As shown in that figure, the conversion from feature space to visualization space to display space may begin in block 501 with creating a graph of the representations in feature space. This graph creation may be done by, for each cell represented as a location in feature space, identifying that cell’s nearest neighbors and establishing connections between that cell and its neighbors. This may be done deterministically (e.g., establishing connections between each cell and its n closest neighbors, where n is an integer value such as 50), or probabilistically (e.g., establish a connection between two cells with a probability that varies inversely with the distance between those cells’ representations in feature space), or using a combined approach (e.g., deterministically establishing a connection between a cell and its nearest neighbor, then probabilistically establishing connections with other cells based on distance). Other approaches to block 501’s creation of a feature space graph, such as identifying communitiesusing a process such as described in the context of FIG. 4, and treating the representations in a community as connected with each other, or applying a different type of classification algorithm, such as a Bayesian classifier, and treating representations which are classified together as being connected are also possible, and may be used in various cases when implementing the features space graph creation of block 501.

[0170] After the feature space graph is created in block 501, the method of FIG. 5 may continue in block 502 with creating initial locations for the cells in the visualization space. As with creating the graph in feature space, the initial visualization locations may be created in a variety of manners. For example, in some cases, the cells represented by locations in feature space may be assigned random normal locations in visualization space, with the expectation that those locations will be adjusted as needed during optimization in block 503. In another example, in some cases the cells represented by locations in feature space may be given nonrandom locations in visualization space. For example, in some cases creating the initial locations for cells in block 502 may include calculating the Laplacian matrix for the feature space graph, and projecting the representations in feature space onto the matrix’s first d eigenvectors after the initial eigenvector, where d is the number of dimensions in the visualization space.

[0171] Once the initial locations in visualization space had been created, the method of FIG. 5 may proceed in block 503 with optimizing the locations in visualization space based on the graph in feature space. This may be done by using various optimization algorithms with an evaluation function that may vary depending on how well the visualization space locations preserve the information from feature space, despite the difference in dimensionality between the two. For example, in some cases, the locations in visualization space may be optimized by modifying those locations using stochastic gradient descent to minimize the cross entropy over the existence probabilities of edges (e.g., where the longer an edge connecting two points is, the lower its probability is treated as being) in the feature and visualization spaces. Other approaches may also be used when performing the optimization of bock 503. For example, other optimization algorithms, such as gradient descent, Bayesian optimization, or various types of genetic algorithms may also be used, rather than stochastic gradient descent being required for optimizing the locations in visualization space. Similarly, other types of evaluation functions may be used in the optimization, such as using kullback-liebler divergence, adjacency spectral distance, or edit distance rather than cross entropy as described above. Accordingly, the above illustration of how the location optimization of block 503 may be implemented, as with the discussion of the other aspects of FIG. 5, may be understood as being illustrative onlyand not limiting.

[0172] After locations representing cells in visualization space had been determined (e.g., based on being optimized in block 503), a mapping model may be stored in block 504 to assist with later translations from feature space to visualization space. For example, in some cases, feature space graph determined in block 501, along with the optimized locations determined in block 503 may be stored in block 504 as a mapping model. In this type of case, when a new point is to be added (e.g., a new cell is scanned), that cell’s location may be inserted into the existing nearest neighbor graph, and then its location in visualization space may be optimized with respect to the existing visualization space locations, rather than completely repeating blocks 501-503 each time a new cell is to be added. Other approaches block 504’ s mapping model storage may also be used in some cases. For instance, storing a mapping model may in some cases be performed by determining a best fit curve for each dimension in visualization space (e.g., a n degree polynomial, where n is the number of dimensions in feature space), so that when a new cell is to be added, it may be given a location in visualization space based on applying the determined best fit curves.

[0173] The visualization space locations may also be used for other purposes, such as defining a display space in block 505. This may be done, for example, by identifying the maximum and minimum extents of a bounding box which includes all of the cell locations in visualization space and has the same aspect ratio as an array (e.g., a 2048x2048 grid of pixels) the interface may use to display those locations to a user, and then projecting that onto a grid corresponding to the extents of the applicable portion of the interface. This may be illustrated by a case of a two dimensional space with cell representations having a bounding box with an upper left corner at (2644, -3366) and a lower right corner at (5595, -6129). In such a case, if the cell locationsare are to be displayed in a 2048x2048 portion of a user interface, the bounding box may be expanded to have corners at (2644, -3,272) and (5595, -6,223) so that it may have the same shape as the 2048x2048 grid. The upper left corner of the bounding box (in this example, (2644, -3,272)) maybe mapped to location (0, 0) in display space, while the lower right comer of the bounding box (i.e., (5595, -6,223) in this example) may be mapped to location (2047, 2047) in display space.

[0174] Finally, in block 506, the visualization space locations representing individual cells may be mapped to locations in display space, such as by using Equations 3 and 4, below.Xdisp = Floor((Xvis - LeftBox) * scale + Leftdisp).Equation 3Ydisp = Floor((Yvis - TopBox) * scale + Topdisp).Equation 4In these equations, Xvis and Yvis are, respectively x and y coordinates of a visualization space location to be mapped to display space. LeftBox is the x coordinate of the leftmost location in visualization space to be mapped to display space. TopBox is the y coordinate of the topmost location in visualization space to be mapped to display space. Leftdisp is the x coordinate of the leftmost location in display space. Topdisp is the y coordinate of the topmost location in display space. Scale is a scale factor for translating between visualization and display space (e.g., the ratio of the display space’s and bounding box’s horizontal extents). Floor() is a function which receives a real number as input, and provides as output the greatest integer which is not greater than the real number input.

[0175] It is to be understood that, just as the examples provided above of how blocks 501- 506 may be implemented are illustrative only, FIG. 5 itself is illustrative of how locations of cells in feature space may be converted into locations for those cells in a lower dimensional visualization space and ultimately to bounded and quantized display space, and that variations and other approaches are also possible. For example, in some cases, there may be different dimensionality reduction acts performed, either in the context of the method of FIG. 5 (e.g., before creating the graph in feature space, or after the feature space graph has been created, but before creation of initial locations in visualization space), or instead of the method of FIG. 5, in the event that the different dimensionality reduction acts are sufficient to provide locations for the cells in visualization space. As shown by the morphometric features in FIGS. 3 A-3E, in some cases, dimensions corresponding to one or more of those features (e.g., dimensions corresponding to the position and / or focus features of FIGS. 3A-3E) may be removed (e.g., either before or after the graph creation of block 501), thereby reducing the number of dimensions in the feature space representations to be considered. Similarly, in different implementations, different types of dimensionality reduction approaches may be used to allow representations in feature space to be viewed in visualization space. For example, in different implementations, approaches may be used such as described in Jolliffe and Cadima, Principal component analysis: a review and recent developments, available at https: / / royalsocietypublishing.org / doi / 10.1098 / rsta.2015.0202, Mclnnes et. al., UMAP: Uniform Manifold Approximation and Projection for Dimensionality Reduction, available at https: / / arxiv.org / pdf / 1802.03426.pdf, or Tharwat, et. al., Linear Discriminant Analysis: ADetailed Tutorial, available at https : / / salford- repository.worktribe.com / preview / 1489402 / AI_Com_LDA_Tarek.pdf, the disclosures of each of which are hereby incorporated by reference in their entirety.

[0176] As another example, in some cases, rather than mapping locations in visualization space onto a display space having predefined dimensions, it is possible that the display space dimensions may be determined based on the locations of cells in visualization space (e.g., display space may be defined as having dimensions which preserve the relative height and width of the bounding box around the locations in visualization space), and locations in visualization space may be mapped onto locations in this more flexible display space. Other variations are also possible and may be implemented without undue experimentation by those of skill in the art in light of this disclosure. Accordingly, the above variations, like the discussion of FIG. 5 itself, is to be understood as illustrative only, and not treated as limiting.

[0177] V. User Interaction and Class Definition

[0178] However the transition from feature space to lower dimensional visualization and / or display space takes place, the lower dimensional space locations may be used to provide an interface allowing a user to perform various actions with respect to the overall cell population, as well as with other cells which may subsequently be represented in feature space. FIG. 6 illustrates an interface which may be presented to a user after display space locations have been determined from feature space representations of cells (e.g., using a method such as described in the context of FIG. 5). As shown in that figure, using aspects of the technology described herein, a user may be presented with an interface showing various cell groupings (e.g., communities identified using a method such as depicted in FIG. 4, nearest neighbor clusters identified as part of block 501 in FIG. 5) with different characteristics (e.g., different colors) to allow for easy visual discrimination. Additionally, a user may be provided with tools (e.g., a lasso tool, various geometric selection tools) which may allow the user to define selections in display space, potentially allowing them to see images of the cells located in the selected locations. Other types of interactions, such as clicking on a point representing a cell in the interface and being presented with one or more images of the subject cell are also possible, and may be incorporated into an interface implemented based on this disclosure without undue experimentation.

[0179] Interfaces implemented based on this disclosure may also, or additionally, support interactions beyond allowing a user to view images of cells corresponding to locations in display space. For example, in some cases, a user may be able to define his or her own classes for cells, rather than being limited to classes such as may be determined as discussed above inthe context of FIGS. 4 and 5. FIG. 7 provides a high level overview of a process which may be performed based on this disclosure to allow and support the creation of user defined classes.

[0180] As shown in FIG. 7, allowing and supporting the creation of user defined classes may begin in block 701 with providing tools for defining the classes. This may be done, for example, by providing selection tools such as described above in the context of FIG. 6 which may allow a user to define various portions of a user interface. However, other, or additional, acts may be included in providing class definition tools in block 701. For example, in some cases, providing class definition tools may include giving a user access to a wizard, fillable form or similar interface tool that may allow a user to define a class using conditions rather than lassos or other graphical selection tools. For instance, in some cases a user may be allowed to state that any cells displayed in display space at a location with an x coordinate greater than a specified amount are included in a class, rather than requiring the user to directly indicate the relevant locations in the interface itself (e.g., using a rectangular selection tool). Providing class definition tools may also include providing tools for defining aspects of a class other than its domain. For example, a user may be provided with tools allowing them to provide data regarding a class, such as a class label, descriptive information for a class, archetypal images of cells in a class, special treatment for cells in a class (e.g., how cells in that class are to be routed, as described in more detail in Section VI, below). Other acts which may be performed in providing class definition tools are also possible, and may be implemented by those of skill in the art without undue experimentation based on this disclosure. Accordingly, the examples provided of what may be included when implementing the tool provision of block 701 may be understood as being illustrative only not treated as limiting.

[0181] Continuing with the discussion of FIG. 7, allowing and supporting the creation of user defined classes may also include receiving a class domain in block 702. This may be done by, for example, receiving a set of one or more locations on an interface such as shown in FIG. 6 which the user selects as being locations on the interface whose cells are to be treated as falling into the class being defined. Similarly, receiving class information in block 703 may be done by receiving data such as that noted in Table 2 below, which a user may be able to specify for a class using class definition tools, such as a wizard or fillable form.Table 2: Illustrative class information

[0182] Once the information and domain for a class have been received in blocks 702 and 703, that information may be stored in block 704 with conditions which may indicate when it may be applied. This may be done by processing the class domain information received in block 702, and converting that information into, or using that information to populate, appropriate data structures that may later be used for determining whether a user defined class does or does not include a particular cell. An illustration of this may be provided in the context of an implementation where the domain for a class is defined in terms of locations in a bounded and quantized display space. In this type of implementation, because there are finite display space locations, each location in display space may have a corresponding region in visualization space and a data structure indicating what user defined class(es), if any, cover a cell whose location in visualization space is within that region. For instance in a display space with upper left and lower right comers at (0, 0) and (2047, 2047), if a user defined the domain for a class by making a rectangular selection with corners at (85, 1174) and (1533, 1448), then block 704’ s determination of class conditions may include mapping the rectangular section back to a 2048x2048 grid of regions in visualization space, where each region in that visualization space grid includes all visualization space locations that may be mapped to a single display space location (e.g., using equations 3 and 4). In this example block 704’ s determination may also include populating the data structures corresponding to display space locations with x coordinates between 85 and 1533 and y coordinates between 1174 and 1448 with information associated them with the user defined class. In implementations using this type of approach, when a determination is needed as to whether a cell is or is not within a particular class, the determination may be made by determining the cell’s location in visualization space, matching that location to one or the regions in the 2048x2048 grid, and retrieving the appropriate class information from the corresponding data structure for that region. By following a method such as shown in FIG. 7, the disclosed technology may be usedto allow users to define their own classes without requiring them to have knowledge of or modify the system’s underlying code or machine learning models. Additionally, by using dedicated data structures to store class information with class conditions in block 704, the disclosed technology may allow both user defined classes and automatically defined classes (e.g., classes defined using a method such as shown in FIG. 4) to be maintained and used for various purposes (e.g., user defined classes may be used to determine how cells are to be sorted, while colors or other visual identifiers in the user interface may be determined based on classes which are automatically determined).

[0183] While FIGS. 6 and 7 and the associated discussion provided examples of interfaces which may be presented to a user and ways in which user class creation may be allowed and supported, it is to be understood that those examples are not intended to be exhaustive, and that alternatives to the provided examples may also be implemented based on this disclosure. In some implementations, certain methods may be used to define a class domain such as that received in block 702. In some cases, a user may be allowed to define the domain of a class in manners other than defining areas on an interface corresponding to the class, such as by specifying automatically generated classes, or even representations of cells and indicating that those classes or representations are to be combined to create a new class. In such a case, a system implemented based on this disclosure may determine the class condition(s) in block 704 by identifying a minimal polygon (e.g., a convex hull) which may include the items specified for combination by the user in visualization space, and then determine the class conditional as if that polygon is an area specified by the user using a lasso tool (e.g., identifying pixels within the polygon in the event that the class information is stored in data structures corresponding to individual pixels, or identifying the vertices of the polygon in the event that each class had its own data structure whose applicability may be determined using a point in polygon algorithm).

[0184] Similarly, in some cases, class domains may be based on feature space characteristics either in addition to, or as alternatives to, visualization space information. For example, in some implementations, when a user specifies a set of visualization space cell representations for inclusion in a user defined class (e.g., by selecting a portion of an interface which includes those representations, by identifying those representations as items to be combined to create a user defined class, etc.) a system implemented based on this disclosure may create a convex hull around the representations of those same cells in feature space, and any cells included in that feature space convex hull may be treated as being included in the user defined class, regardless of where the representations of those cells may appear in visualizationspace. As another example, in some cases a user may be allowed to define a class in whole or in part based on feature space characteristics (e.g., using a form or a wizard to specify that any cell with a perimeter between certain minimum and maximum values is to be treated as falling into a particular user defined class), and these characteristics may be included in the class conditions determined in block 704 along with any conditions which may exist for that class based on visualization space information.

[0185] Alternatives are also possible in aspects other than how class domains may be defined and / or received. For example, to illustrate, consider how tools which may be provided in block 701 may allow class information such as shown in table 2 to be defined. In some cases, a wizard or form (e.g., an interface providing various tools such as text boxes, dropdowns, radio buttons, etc. for specifying information) may be provided which may allow a user to independently define each of the information items regarding a particular class. However, it is also possible that in some cases, the different items of class information may be linked in such a manner that defining one item may also define one or more other items. For example, in a case where user defined classes are used for sorting cells into one of a set of wells, there may be a fixed number of user defined classes, with one class per cell. In this type of case, when a user defined a first user defined class, the treatment of cells in that class as being sorted into the first well may be automatically be defined, rather than requiring the user to define it separately. Similarly, in some cases, different treatments (e.g., different wells cells may be sorted into) may be associated with different priorities, in which case once a class is associated with a particular treatment, its priority may automatically be defined, rather than requiring the user to define the priority separately.

[0186] As another example of a type of variation which may be implemented based on this disclosure, in some cases, block 704’ s storing class information with conditions may be performed by creating one data structure for each user defined class, and populating that data structure with both the conditions defining the domain and the class information. In such a case, when a determination is needed as to whether a cell is or is not within a particular class (e.g., when an image of a new cell is captured and the cell’s class needs to be determined for purposes of sortation) a system implemented based on this disclosure may retrieve the data structures for each user defined class, iterate through the classes using a point in polygon algorithm to determine which class(es) (if any) contained the cell, and then use the class information for the applicable class(es) (e.g., priority in the case of an overlap regarding which well a cell is to be sorted into in the case where a user defined class is used for cell sortation) to determine how the cell is to be treated. Other variations are also possible, and will beimmediately apparent to those of skill in the art in light of this disclosure. For example, in some cases where the disclosed technology is used as a basis for an implementation which includes a method such as shown in FIG. 7, the acts of block 704 may be done after block 702 and before block 703 (e.g., a user may be allowed to specify that particular locations may correspond to a user defined class, and then supply the information for that user defined class only later), rather than block 704 only being performed after both block 702 and block 703 as illustrated in FIG. 7. Accordingly, the high level illustrations, like the particular implementations described in this section are to be understood as being illustrative only, and not treated as limiting.

[0187] VI. Cell Sorting

[0188] As noted above, the disclosed technology may be used to define classes which are used to control how cells may be sorted into different wells. To illustrate how this may be implemented in practice, FIGS. 8 and 9, illustrate, respectively, a method by which cells may be sorted, and a (not to scale) diagram of components which may be used in cell sortation. Each of those figures, along certain potential variations, are discussed below.

[0189] As shown in FIG. 8, cell sorting may begin in block 801 with one or more images of a cell being captured. In an assembly such as shown in FIG. 9, this may be done by using a light source (901) to generate light for imaging and focus it through an optical assembly (902) to illuminate cells as they pass through an imaging channel of a flow channel (903). This light may be captured by an objective lens assembly (904) positioned on the opposite side of the flow channel (903) from which it may be captured by a camera (905) which may image the cells. In this type of assembly, the objective lens assembly (904) may magnify the cells as they are imaged (e.g., lOx magnification, 200x magnification, or such other level of magnification as may be appropriate in a given context). The camera itself may then continuously capture images of the cells, such as by capturing images of the imaging region at a rate of between 5,000 frames / second and 10,000 frames / second (e.g., 7500 frames / second), though in some versions imaging rates of less than 5,000 frames / second or greater than 10,000 frames / second may be used. Thus, in some cases, a method such as shown in FIG. 8 may be performed in parallel for each of the images captured by the camera which depicts a cell.

[0190] After the image(s) of a cell have been captured in block 801, the image(s) may be used to create a cell object in block 802. This may be done, for example, by assembling the images of a cell into a data structure which represents the physical cell and which may include other potentially relevant information like a frame number, time, and / or location of one or more of the images (e.g., storing the frame number of the first image of the cell). Once the cell objecthas been created in block 802, a routing determination may be made in block 803 for the cell that object represents. This may be done by, for example, determining whether the cell falls into a user defined class (e.g., such as by querying a data structure corresponding to the cell’s location in visualization space, as described in the context of block 704) and, if so, determining that the cell should be routed to a well corresponding to that class. In some cases, block 803 ’s determination may include logic which considers multiple images of the cell (if multiple images are available in the cell object). For example, if a cell object had three images, then, if there is a disagreement between those images as to the appropriate classification (e.g., the first two images indicated that the cell is to be classified in class 1, but the third indicated that the cell is to be classified in class 2), a voting protocol (e.g., majority vote, majority vote weighted based on classification confidence) may be used to determine the appropriate class for the cell. In another example, it is also possible that, if different images provided different classifications for a cell, the appropriate class for the cell may be determined based on relatively priorities specified for the classes in question in their class information. Other approaches, such as treating cells which may not be unanimously classified as not being classified at all, are also possible, and may be implemented by those of skill in the art without undue experimentation in light of this disclosure. Accordingly, the above discussion of how block 803 ’s determination of how a cell may be routed is to be understood as being illustrative only, and not as limiting.

[0191] Once a determination had been made of how a cell is to be routed in block 803, when to open and close the applicable valves for implementing that routing may be determined in block 804. As shown in FIG. 9, in an analyzer which supports cell sortation functionality, the flow channel 903 may split into two separate channels downstream of the imaging region, which separate downstream channels may be referred to herein as the positive channel (906) and the negative channel (907). The positive and negative channels (906, 907) may each have a valve (a positive valve (908) and a negative valve (909)) at the connection to the flow channel (903), which may open and close to control how a cell is routed after being imaged. Additionally, the positive channel (906) may split into a set of individual routing channels (910-1 to 910-n), which are themselves controlled by an array of one or more valves (shown in FIG. 9 as valves 911-1 to 911-n). Accordingly, in an implementation following FIG. 9, the determination of block 804 may include determining when (and which) of the positive and negative valves (908, 909) and the valve array (911-1 to 911-n) may be opened and closed for the imaged cell to be routed to its appropriate destination.

[0192] In an implementation which routes cells using valves as illustrated in FIG. 9, the valve opening and closing determination of block 804 may include determining a windowduring which the imaged cell is likely to reach the inlets of the positive and negative channels (906, 907). This may be done, for example, by dividing the distance from where the last image is captured to the inlets of the positive and negative channels (906, 907) by the rate at which the cell is moving at that time. The valve timing determination of block 804 may also include calculating a window before and after the expected inlet arrival time during which the positive and negative valves may need to be set for the cell to be properly routed, even if it is moving somewhat faster or slower than the rate used in the inlet arrival time calculation. For example, if the default states of the positive and negative valves (908, 909) are, respectively, being closed and open, and a cell which is to be sorted into a particular well based on its classification is expected to reach the inlet of the positive channel (906) in 110 milliseconds, the window may be calculated to open the positive valve (908) and close the negative valve from 105 to 115 milliseconds in the future, thereby allowing the cell to be routed appropriately even if it is moving approximately 5% faster or slower than expected. Similar determinations may also be made for the valve array (911-1 to 911-n), thereby allowing the valves in an implementation following FIG. 9 to not only be opened and closed to route a cell to the positive or negative channel (906, 907), but also allowing the cell to be routed to a particular well based on its class.

[0193] Continuing with the discussion of FIG. 8, an implementation following FIG. 9 may not only open and close valves according to the determination of block 804, it may also detect in block 805 when a routed cell has passed into either the positive or negative channel (906, 907). To support this, the components used in cell routing may include a set of laser emitters (912, 913), each of which is paired with a corresponding detector (914, 915). The emitterdetector pairs may be positioned at the inlets of the positive and negative channels (906, 907), such that, when a cell enters one of those channels, it may pass through a beam between an emitter and detector and its passage may thereby be detected.

[0194] After a routed cell is detected in block 805, a determination may be made in block 806 as to whether additional fluid is to be introduced to the passage where it is detected to help flush it out of the passage and to its destination. This may be done, for example, by checking if the cell is in the positive or negative channel (906, 907) and, if the cell is the positive channel, introducing additional fluid (flushing fluid, which may be a biocompatible fluid) in block 807, such as via flushing fluid injector (916) located behind the positive valve (908), to flush it to its destination (e.g., if the negative valve (909) is open by default, thereby fluidically coupling the negative channel (907) and the flow channel (903) as the default state). Then, once the cell had been flushed (or not, depending on the determination of block 806), the process may be performed for the next cell whose image is captured as it moved through the imaging area ofthe flow channel (903).

[0195] The determination of block 806 may be made in other ways as well. For example, in an implementation where flushing a cell resulted not only in the cell being pushed to a well corresponding to its type, but also resulted in a small amount of liquid entering the well as well, flushing after each cell that enter the positive channel (906) may reduce the effective volume of the wells where the cells may be collected. To address this potential drawback, in some cases, cells may be routed to wells in order of priority, and a cell may be flushed only after enough cells of its type had been routed to fill the well associated with its cell type. A high level overview of acts which may be incorporated into a method such as shown in FIG. 8 to support this type of priority based reduced flushing is provided in FIG. 10, discussed below.

[0196] Turning now to FIG. 10, as shown in that figure, to support priority based reduced flushing, there may be a preliminary act, shown in block 1001, of initializing an active class and setting a FLUSH flag to false. This may be done before any images are captured, and may include setting a variable used to track the well into which cells may be sorted at a value corresponding to the class forthat well - i.e., the “active class.” Subsequently, after a cell image had been captured, the routing determination for that cell may include classifying that cell in block 1002. If, in block 1003, the cell is classified into a class other than the active class, then the determination of block 803 for that cell may be that it is to be routed to the negative channel (i.e., not sorted into a well), as shown in block 1004. In another example, if that cell is classified in the active class, then a further determination may be made in block 1005 of whether that cell is the last cell for the well corresponding to its class. This may be done by checking if, once that cell (and any previously routed cells of the same class) had been flushed, the well corresponding to the then active class may be filled. The determination of block 1005 may also be made in other ways, such as checking if, once the cell had been flushed, a threshold amount of cells may have been collected in the corresponding well. However it is made, if the determination of block 1005 is that the cell is the last cell for its well, then the value of the FLUSH flag may be set to true in block 1006, indicating that this cell is to be flushed after it is routed. Once the value of FLUSH is set to true, or if the determination of block 1005 is that this cell is not the last cell for its well, the routing for that cell may be determined in block 1007 to be to the well corresponding to its class. Subsequently, once a cell associated with a FLUSH value of true had been routed, it may be flushed in block 1008 based on the value of the FLUSH flag. Then, in block 1009, the active class may be updated (e.g., changed to the next lowest priority user defined class) and the FLUSH flag may be reset to false so the process may continue through all applicable classes.

[0197] While FIGS. 8-10 and the associated discussion provided examples of methods and systems which may be used for class based cell sortation, those examples are intended to be illustrative only, and variations on the examples provided in the context of FIGS. 8-10 may be included in some implementations of the disclosed technology. For example, in some cases there may be functionality included for identifying when a single image depicts multiple cells, and segmenting those cells out of the image so that they may each be processed and routed individually. Similarly, in some cases, there may be additional acts performed to ensure proper synchronization between components which are controlling the routing (e.g., a controller of a cell analysis system, not shown in FIG. 9) and one or more of the components which are actually interacting with the cell, such as the camera (905) used for capturing images (frame synchronization). Other variations on methods which may be performed for supporting class based cell sorting (e.g., sorting based on automatically generated classes rather than user defined classes, or on automatically generated classes selected by a user) are also possible, and may be implemented by those of ordinary skill without undue experimentation based on this disclosure. Accordingly, the above variations, like the discussion of FIG. 8 itself, is to be understood as being illustrative only, and not limiting.

[0198] Variations are also possible from the configuration of FIG. 9 with respect to the components which may be used in a method such as the method of FIG. 8. For example, as noted previously, FIG. 9 is not to scale, and the relative dimensions and positions of components in a system implemented based on this disclosure may vary from what is shown in that figure. Similarly, the shapes of components used in cell sortation may also differ from the shapes illustrated in FIG. 9. For example, in some cases the connection between the flow channel (903) and the positive and negative channels (906, 907) may be a T junction, rather than a Y junction as shown. Additionally, in some cases a fluid injector (916) may be downstream of the positive valve (908) but upstream of the emitter (912) and detector (914) in the positive channel (906), rather than being downstream of both the positive valve (908) and the positive emitter detector pair (912, 914) as shown in FIG. 9.

[0199] It is also possible that sortation may be achieved and / or supported by components other than those illustrated in FIG. 9. For example, in some cases, rather than the valve and channel approach illustrated in FIG. 9, a cell may be routed to its final destination using a section device (e.g., a syringe) which may suck a cell out of the flow channel (903) once its routing had been determined, or other types of sorting, such as described in Chen, et. al., Micromachined bubble-jet cell sorter with multiple operation modes, available at https: / / www.sciencedirect.eom / science / article / abs / pii / S0925400506003911, the disclosure ofwhich is incorporated in its entirety, may also be used. Similarly, rather than having an array of valves (911-1 to 911-n) with one valve per routing channel as shown in FIG. 9, in some cases there may be a multiplex valve to individual wells.

[0200] As another example, while FIG. 9 indicates that cells routed to the negative channel (907) are sent to waste, in some implementations it is possible that cells sent to the negative channel may be recirculated back to the flow channel rather than being sent to waste, potentially on some condition being fulfilled. For example, an implementation which used priority based reduced flushing may recirculate cells from the negative channel (907) to the flow channel (903) until all of the classes had been the active class, so that cells which may be routed to a well may not be disposed of because they are imaged at a time their class is not active. Indeed, even the basic architecture shown in FIG. 9 may be varied in some cases. For instance, while it is possible that all components shown in FIG. 9 may be included as part of a single integrated cell analyzer, it is also possible that, in some cases, the components in FIG. 9 which may transport and control the cells (i.e., the channels and valves) may be included in a removable cartridge, while other components (e.g., the camera, illumination source, various lenses) may be included in the analyzer where the cartridge may be inserted. Accordingly, the components and arrangement of FIG. 9, like the methods of FIGS. 8 and 10 and the examples and variation given in the context of those figures, are to be understood as being illustrative only, and not treated as limiting.

[0201] VII. Delay Determination

[0202] Turning next to FIG. 11, that figure provide s a high level illustration of a method which may be performed (e.g., by a controller of a cell analysis system used for performing sortation) to determine a delay between when a cell is imaged and when it may enter either the positive or negative channel, such as may be used in the valve opening and closing determination of block 804. As shown in FIG. 11, this type of delay determination may begin in block 1101 with receiving cell passage data indicating that a cell has passed a certain point (e.g., a midpoint of an imaging region of a flow channel, the portion of the positive or negative channel between that channel’s laser emitter and detector, etc.). Then, depending on the type of passage that is detected, the cell’s passage may be added to a pattern for that type of passage. For example, if the passage data indicated that a cell had been imaged at a location in an imaging region of a flow channel, then the cell’s passage may be added to an imaged cell pattern in block 1102. In another implementation, if the passage data indicated that a cell had been detected by a laser emitter-detector pair after being routed to the positive or negative channel, then the cell’s passage may be added to a routed cell pattern in block 1103.

[0203] This may then continue, with new cell passages being received in block 1101, and added to an appropriate pattern in block 1102 or block 1103, until a determination is made in block 1104 that a pattern period has elapsed. What the determination of block 1104 may entail may be illustrated in the context of a system which may begin by estimating that the flow rate is equal to a rate at which fluid is introduced to a flow channel (903), and thereafter may update the flow rate each second based on the patterns detected in the previous second. In such a system, if the then current flow rate had been used or at least one second without being updated, then the determination of block 1104 may be that the pattern period had elapsed. Once the pattern period had elapsed, the collected patterns may be used in block 1105 to determine the delay from when a cell is imaged and when it may enter the positive or negative channel. This may be done, for example, by matching time sequences between cells in the two patterns, and then using the offset between those sequences as the delay.

[0204] A concrete example of how the determination of block 1105 may be performed is provided FIG. 12. In that figure, an imaged cell passage is detected at time 0 and so that passage (represented by a black bar in FIG. 12) is added to the imaged cell pattern (1201). Imaged cell passages are also detected after 0.03, 0.09, 0.15, 0.18 and 0.21 seconds have elapsed from time 0, and those passages are also added to the imaged cell pattern (1201). Similarly, routed cell passages are detected after 0.12, 0.15, 0.21, 0.27, 0.3 and 0.33 seconds have elapsed from time 0. Given that the differences in time between passages in the two patterns are identical (i.e., in both patterns the time from the first to second passage is 0.03 seconds, the time from second to third passage is 0.6 seconds, the time from third to fourth passage is 0.6 seconds, etc.), the two patterns may be treated as indicating the passages of the same physical cells, and the offset between the first passages in each pattern (i.e., 0.12 seconds) may be treated as the delay between the location corresponding to the passages in the imaged cell pattern and the location corresponding to the passages in the routed cell pattern.

[0205] FIG. 11 shows in one example determining the delay between the imaged and routed cell patterns. An implementation which performs a method such as illustrated in that figure may also detect, in block 1106, if a carryover has occurred and, if it has, adjust one or more patterns based on that carryover in block 1107. These carryover detection and adjustment blocks may be used to address a situation where a cell passage is recorded in one pattern (e.g., the imaged cell pattern), but a corresponding passage for that same cell is not added to an offset pattern (e.g., the routed cell pattern) until after a pattern period has elapsed - i.e., where detection events for a single cell straddle pattern periods. To detect such carryover events, some implementations may, check if cell passages in an earlier pattern (e.g., the imaged cell pattern,in the example of FIG. 12) take place close enough to the end of the pattern period for that pattern that the cell’ s passage may be expected not to be added to a later pattern (e.g., the routed cell pattern, in the example of FIG. 12) until the next pattern period based on the then current delay between the earlier and later periods. If such a carryover is detected, it may be preserved (e.g., added to a carryover buffer) and added to the beginning of the earlier pattern at the next pattern period, thereby preventing the later pattern from beginning with a series of unmatched passages. Other approaches, such as deleting carryovers, are also possible, and may be followed in some implementations. Accordingly, the above examples and discussion of detecting and handling carryovers are to be understood as being illustrative only, and not treated as limiting.

[0206] Other variations are also possible beyond those in how carryovers are detected and addressed. For example, in some cases, rather than determining the delay at the end of each pattern period, the delay may be continuously redetermined based on the patterns from the last pattern period (e.g., from the last second), and in some implementations following this approach the acts of detecting and adjusting for carryovers in blocks 1106 and 1107 may simply be omitted. As another example, when determining a delay based on imaged and routed patterns in block 1105, it is possible that some implementations may not need precise agreement in timing between passages to identify an offset, or may consider factors other than timing when determining an offset. For example, in some cases, not only whether a passage is detected, but the details of that detection (e.g., the type of a cell in a captured image, the length of time required to pass through a laser in the positive or negative channels, or the amount of light occluded when a cell interrupts a laser) may also be considered and used to identify matching portions of different patterns so that offsets may be calculated.

[0207] It is also possible that, in some implementations, passage information such as described above may be used for other purposes, either in addition to, or as an alternative to, using passages for delay determination. As an illustration, in some cases when a cell routing decision is made, that routing decision may be associated with an expected passage event in either the positive or negative channel. That expected passage may then be compared with actual detected passages, to determine if the cell actually traveled down the channel it is supposed to, or if its movement did not match its routing (e.g., if a valve is opened or closed too early or late). This may then be used to adjust operation of the cell analysis system being used for sortation (e.g., if a particular type of cell is disproportionately likely to be misrouted due to a valve being opened too late, the valve opening window may be pushed back for that cell type to help address this problem), and may also (or alternatively) be used to capture statistics such as percentages of various types of cells which are routed (or misrouted) whenprocessing a sample. Accordingly, the above variations, like the examples in section VII which preceded them, are to be understood as illustrative only, and not treated as limiting.

[0208] VIII. Exemplary Implementations

[0209] A further illustration of how the disclosed technology may be applied is provided in FIG. 13. FIG. 13 illustrates a method which may be used for classifying cells. As shown in FIG. 13, a method for classifying cells may begin in block 1301 with, for each of a plurality of cells, determining a corresponding location for that cell in feature space. This may be done, for example, by applying techniques such as described in section II to images depicting the cells whose feature space locations are being determined in block 1301. The method of FIG. 13 also includes, in block 1302, determining visualization space locations for the plurality of cells (e.g., locations in a two dimensional visualization space). This may be done, for example, using techniques such as described above in the context of FIG. 5. With these locations having been determined, the method of FIG. 13 continues in block 1303 with determining automatically generated classes for the cells. This may be done, for example, using a clustering algorithm such as a community detection algorithm of the type described above in the context of FIG. 4. These automatically generated classes may then be used in block 1304 to generate a two dimensional interface to display data points at locations in visualization space. This two dimensional interface may be an interface such as that shown in FIG. 6, and it may apply the automatically generated classes by displaying data points corresponding to cells with characteristics corresponding to the cells’ automatically generated classes. For example, each class may correspond to a different color, and the interface may display data points (which data points may each correspond to a single cell, or may correspond to multiple cells of the same class, depending on how densely packed the cells are in visualization space) in the colors of the classes to which they correspond.

[0210] Consistent with the discussion set forth in section V, a two dimensional interface such as may be generated in block 1304 may be used for purposes other than simply displaying data points. For example, in a method such as shown in FIG. 13, after the interface has been generated in block 1304, in block 1305 a set of two dimensional regions may be received. These regions may be regions defined by a user using tools such as shape selectors to specify regions in an interface such as shown in FIG. 6, and receiving them may include receiving them over a network connection (e.g., where the user interacts with a web based interface that is connected over a wide area network to a server that is used in performing the method of FIG. 13) or receiving them as they are defined by a user using region definition tools (e.g., geometric selectors) in the two dimensional interface. Once they are received, for each region, the methodmay comprise storing, in block 1306, data associating locations in a two dimensional array that fall within that region with a class corresponding to that region (e.g., a user defined class). This may be done by, for each region, identifying the locations in visualization space which are within that region when they are displayed in display space. In this case, because the display space is bounded and quantized it may be represented as a two dimensional array. The locations in that array may be associated with classes corresponding to the regions (if any) where they are found by having a data structure for each of the locations, and storing the information for the corresponding class (or an identifier for the class, such as a pointer) in that data structure.

[0211] As shown in FIG. 13, a method for classifying cells may also include, for a cell from a set of one or more additional cells (e.g., a cell imaged as it is flowing through a flow channel, such as described above in the context of FIG. 9) determining, in block 1307, a class for that cell using at least the set of two dimensional regions. This may include determining a location for that additional cell in visualization space in block 1308, such as by applying a clustering algorithm (either de-novo, or using a mapping model or similar data structure such as described in section IV). Then, using that location in visualization space, a location for the additional cell in may be determined in a 2D array (e.g., using the data stored in block 1306) in block 1309. The class for that cell may then be determined in block 1311 as the class corresponding to the region from the set of two dimensional regions (i.e., the regions received in block 1305) which contains the location of that cell in visualization space (e.g., by determining that the class for that cell is the class associated with its location in the two dimensional array).

[0212] In such a method, for each of the additional cells, the class determination of block 1307 may be performed while that cell flows through a flow channel (e.g., a flow channel (903) as shown in FIG. 9), and a routing determination may be made for that cell based on its determined class. It is also possible that, as shown in FIG. 13, an automatically generated class (e.g., a class generated using clustering such as described above in the context of FIGS. 4 and 5) may be determined for the additional cell in block 1312. With that automatically generated class, a data point may corresponding to that cell may be displayed in block 1313 in an interface with a characteristic (e.g., a color) corresponding to its class.

[0213] Another cell classification method which may be implemented based on this disclosure is illustrated in FIG. 14. In that method, in block 1401, an initial automatic class generation is performed. This may be done, for example, by, for each a plurality of cells, determining an automatically generated class for that cell by applying a clustering algorithm such as described above in the context of FIG. 4 or block 501 of FIG. 5. The method of FIG.14 also comprises, in block 1402, storing a plurality of user generated classes and membership conditions in a non-transitory computer readable medium. These user generated classes may be, for example, classes defined using tools such as described in the context of block 701 in FIG. 7, and the membership conditions for those classes may be class conditions which may be stored with class information as described in the context of block 704 of FIG. 7. The classification method of FIG. 14 also includes, in block 1403, receiving cell images for a set of one or more additional cells. This may be done by, for example, receiving images captured as additional cells flow through a flow channel (903) such as shown in FIG. 9. Once cell images for an additional cell had been received, an automatically generated class may be determined in block 1404, such as by applying a clustering algorithm (either de novo or through application of a mapping model). Additionally, a user generated class corresponding to the additional cell may also be determined in block 1405, such as by determining if the additional cell satisfies the membership conditions stored in block 1402. As described above, such membership conditions may include a location of the additional cell in visualization space (e.g., a two dimensional space), while clustering algorithms such as may applied in blocks 1401 and 1404 may cluster in higher dimensional space (e.g., four dimensional space, or higher than four dimensional space). Accordingly, in a method such as shown in FIG. 14, cells may have parallel automatically generated and user defined classes in both higher (e.g., four or more dimensions) and lower (e.g., two dimensions) dimensional space, respectively.

[0214] A classification method such as shown in FIG. 14 may include more than providing parallel user and automatically generated classes. For example, as shown in FIG. 14, in block 14, an interface may be displayed which displays data points using at least the locations of cells in feature space (e.g., locations in display space which are derived from feature space locations using techniques such as described in the context of FIG. 5) and which may display those data points with characteristics (e.g., colors) corresponding to the automatically generated classes. Further, and similar to what is described above in the context of FIG. 13, in a case which implements a method as shown in FIG. 14, the user generated class determination of block 1405 may be performed while the additional cell for which that determination is made is flowing through a flow channel, and that user generated class may be used for routing the cell, thereby providing purposes to which the various classes that may be determined for a cell can be applied.

[0215] A further illustration of how the disclosed technology may be applied is provided in a cell collection method illustrated in FIG. 15. As shown in FIG. 15, cell collection may include, in block 1501, routing a first cell to a first destination (e.g., a well corresponding to aclass for the cell). This may include, in block 1502, determining when to open and close first and second valves based on a delay value, such as a value determined based on imaged and routed cell passage patterns such as described in the context of block 1105 of FIG. 11. Then, based on the delay value, in block 1503 opening a first valve which is downstream of the location of the first cell and is between a flow channel an upstream channel (e.g., when the cell is in the flow channel (903) of FIG. 9, opening the positive valve (908) which is between the flow channel (903) and the positive channel (906), which is itself an upstream channel relative to various wells to which the cell may be routed). Similarly, in block 1304, based on the delay value a second valve may be closed (e.g., the negative valve (909) between the flow channel (903) and the negative channel (907) may be closed).

[0216] In the method of FIG. 15, a determination may be made in block 1505 of whether routing the cell to the first destination results in at least a threshold number of cells having been routed to that destination. For example, where the first destination is a first well from a plurality of wells, the determination of block 1505 may be of whether a maximum number of cells that well is to hold have been routed to that well. If it is determined threshold number of cells have not been routed to the first destination, a determination may be made in block 1506 not to introduce a flushing fluid into an upstream channel (e.g., positive channel (906)), and this may be repeated while a plurality of cells are routed to the first destination. Alternatively, based on a determination that the threshold number of cells have been routed to the first destination, the cell which is routed to that destination (as well as other cells which had previously been routed to that destination) may be flushed to the first destination in block 1507. This may be done by, for example, introducing a flushing fluid into an upstream channel (e.g., positive channel (906)) when the upstream channel has a fluidic coupling with the first destination (e.g., when a valve from an array of valves (911-1 to 911-n) is open).

[0217] As shown in FIG. 15, a cell collection method may include, after a cell has been flushed to the first destination, breaking the fluidic coupling to the first destination in block 1508 (e.g., closing a valve from the array of valves (911-1 to 911-n). An active well may then be identified in block 1509. This active well identification may be performed as described for updating an active class in block 1009 of FIG. 10. That is, a new well to which cells may be routed may be identified based on its priority relative to the other wells to which cells may be routed which had not already been designated as the active well. Once the active well had been identified in block 1509, a fluidic coupling may be established to a second destination in block 1510, such as by opening a valve from an array of values (911-1 to 911-n) which leads to the well identified as the active well. Cells may then be routed to that well if they have cell typescorresponding to that well (e.g., if they are classified in the class corresponding to that well), or may be routed to waste if they have types that do not correspond to that well (including, potentially, cells which have a type that may have resulted in them being routed to the first destination if the cells routed to that destination had not already been flushed), until sufficient cells had been routed to that well for it to be flushed, at which point it may be flushed and the process may repeat with the next well to which cells may be routed.

[0218] Another cell collection method which may be implemented based on this disclosure is illustrated in FIG. 16. The cell collection method shown in that figure begins in block 601 with receiving a set of imaging signals, such as signals indicating the presence of cells at an imaging location as discussed previously in the context of FIG. 12. The method of FIG. 16 also includes, in block 1602, receiving a set of routing signals, which may be signals indicating that cells have traveled a distance (e.g., the distance to an emitter detector pair as illustrated in FIG. 9) from the imaging location. Additionally, periodically, with a frequency equal to a fixed time span (e.g., one second), a determination of a time offset between the sets of imaging and routing signals may be made in block 1603. The time offset determined in block 1603 may be a delay value to use in routing cells detected at the imaging location into one of a set of channels, and its determination may include matching patterns in the imaging and routing signals in block 1604, and defining the time offset using a time difference between corresponding signals in those patterns in block 1605 (e.g., using approaches as described in the context of block 1105 from FIG. 11). Then, as shown in block 1606, as long as there are more cells to be imaged, cells may be routed using the then most recently determined time offset (e.g., during each second, cells may be routed using the time offset determined at the beginning of that second using the time offset determined using the previous second’s imaging and routing signals). Otherwise, in block 1607, statistical measures may be calculated using data from the routing signals indicating which of a plurality of channels each cell is routed to.

[0219] IX. Processing Organizations

[0220] While certain of the foregoing examples mentioned various actions being performed by various components (e.g., the method of FIG. 11 being performed by a controller of a cell analysis system), a variety of different architectures may be used in implementing the disclosed technology, and there is significant potential variation for how the various processing, analysis and control tasks associated with the disclosed technology may be organized. For example, in some cases, all processing and analysis acts may be centralized on a single device, such as a controller of a cell analysis system. In another example, it is possible that a controller of a cell analysis system may be used only for directly controlling and receivingdata from that system’s components (which may include components of a cartridge, in implementations where a removable cartridge is present), while a separate computer which is connected to the analysis system either directly or over a local network (e.g., via ethernet or wireless fixed point network) may perform the remaining data analysis tasks (e.g., assembling statistics, determining types for cells in images sent from the cell analysis system, etc.). It is also possible that, in some implementations, remote processing module, such as cloud based servers accessed via a wide area network may be utilized in implementing the disclosed technology. For example, in some cases, a cell analysis system controller may be used for direct interaction with that system’s components, computer connected to the cell analysis system directly or via a local network may host software which generates an interface such as shown in FIG. 6 as well giving a user access to tools which he or she may use to define his or her own classes, while one or more remotely located servers may be accessed over a wide area network to perform more processing intensive activities, such as automatically determining cell types or determining whether a cell imaged by the analysis system falls into a user defined class.

[0221] It is also possible that processing activities may be organized between different types of processing module, either in addition to or as an alternative to organization between different locations. For example, in some cases, processing activities which are suitable for parallelization (e.g., finding nearest neighbors in the context of block 401 of FIG. 4) may be performed using a graphics processing unit (GPU) to take advantage of that type of processor’s parallel processing capabilities, while other activities (e.g., improving a partition based on a quality function in the context of block 403 of FIG. 4) may be performed by a central processing unit (CPU) to take advantage of that type of processor’s suitability for branching logic, sequential logic or other common programming patterns. Similarly, in some cases, control operations (e.g., determining valve opening and closing as described in the context of block 804, determining whether to flush and flushing a routed cell in the context of blocks 806 and 807) may be performed by a dedicated processing module, such as field programmable gate array (FPGA) on a cell analyzer, while other logic (e.g., determining a routing delay as described in the context of FIG. 11, determining how a cell should be routed based on its class as described in the context of block 803) may be performed by one or more software routines (e.g., one or more applications, or one or more threads of a single application) resident on either the analyzer or another system. For example, in some cases, it is possible that processing tasks associated with cell sorting as described in the context of FIGS. 8-11 may be allocated between two software pipelines and a FPGA on an analyzer using an organization such as shown below in Table 3.Table 3

[0222] Other types of organizations (e.g., relying on remote servers for all processing other than direct interaction with components of a cell analysis system, while providing a userinterface through a browser based interface on a local computer), are also possible and may be implemented without undue experimentation by those of skill in the art in light of this disclosure. Accordingly, the above examples and descriptions of how processing activities may be organized are to be understood as being illustrative only, and not treated as limiting.

[0223] X. Additional Variations and Examples

[0224] While the above description included various examples and implementations, those examples and implementations are illustrative only, and other variations may be made and used by those of skill in the art in light of this disclosure. For instance, while the above description set forth FIGS. 4 and 5 as separate processes, it is possible that, in implementations where both of those processes are performed, aspects of those processes may be combined rather than performed repeatedly. For instance, neighbor determination may be included in both FIG. 4 and FIG. 5, and that may be done once rather than repeated for the separate processes. Similarly, in some cases graph creation such as illustrated as block 501 of FIG. 5 may be done using community detection such as described in the context of FIG. 4. Additionally, the following examples relate to various non-exhaustive ways in which the teachings herein may be combined or applied. The following examples are not intended to restrict the coverage of any claims that may be presented at any time in this application or in subsequent filings of this application. No disclaimer is intended. The following examples are being provided for nothing more than merely illustrative purposes. It is contemplated that the various teachings herein may be arranged and applied in numerous other ways to achieve the benefits described here. It is also contemplated that some variations may omit certain features referred to in the below examples. Therefore, none of the aspects or features referred to below may be deemed critical unless otherwise explicitly indicated as such at a later date by the inventors or by a successor in interest to the inventors. If any claims are presented in this application or in subsequent filings related to this application that include additional features beyond those referred to below, those additional features shall not be presumed to have been added for any reason relating to patentability.

[0225] Example 1

[0226] A method comprising: for each cell in a set of cells, determining a corresponding location in a feature space using at least one of one or more cell images which depict that cell, wherein the feature space has more than three dimensions; for each cell in the set of cells, determining a corresponding location in a visualization space using at least the corresponding location in the feature space for that cell, wherein the visualization space has two dimensions; generating a two dimensional interface to display data points at locations in the visualizationspace; receiving a set of two dimensional regions in the visualization space; and for a cell from a set of one or more additional cells, determining a class for that cell using at least the set of two dimensional regions.

[0227] Example 2

[0228] The method of example 1, wherein: each region from the set of two dimensional regions corresponds to a class; and for the cell from the set of one or more additional cells, determining the class for that cell using at least the set of two dimensional regions comprises: determining a location for that cell in the visualization space; and determining the class for that cell as the class corresponding to a region from the set of two dimensional regions which contains the location of that cell in the visualization space.

[0229] Example 3

[0230] The method of example 2, wherein: the two dimensional interface displays the data points in a two dimensional array; the method further comprises, for each region from the set of two dimensional regions, storing data associating each location in the two dimensional array which falls within that two dimensional region with the class corresponding to that two dimensional region; for the cell from the set of one or more additional cells, determining the class for that cell comprises: determining a location for that cell in the two dimensional array using at least the location for that cell in the visualization space; and determining that the class for that cell is the class associated with the location for that cell in the two dimensional array.

[0231] Example 4

[0232] The method of any of examples 1-3, wherein: each region from the set of two dimensional regions corresponds to a class; and the method further comprises defining a set of regions on the feature space using at least, for each region from the set of two dimensional regions, determining a region in the feature space corresponding to that two dimensional region by performing acts comprising: identifying a set of data points displayed within that two dimensional region in the two dimensional interface; identifying locations in the feature space corresponding to the set of data points; identifying a region in the feature space circumscribed by a convex hull containing each of the locations in feature space identified as corresponding to the set of data points; and defining the region circumscribed by the convex hull as corresponding to the class corresponding to that two dimensional region; and for the cell from the set of one or more additional cells, determining the class for that cell using at least the set of two dimensional regions comprises: determining a location for that cell in the feature space; identifying, a region from the set of regions in the feature space which contains the location for that additional cell in the feature space; and determining that the class for that additional cellis the class corresponding to the region in the feature space identified as containing the location for that additional cell in the feature space.

[0233] Example 5

[0234] The method of any of examples 1-4, wherein the set of two dimensional regions comprises at least one region which is non-contiguous in the visualization space.

[0235] Example 6

[0236] The method of any of examples 1-5, wherein: the method further comprises determining automatically generated classes for each of the set of cells by applying a clustering algorithm; each data point in the two dimensional interface corresponds to one or more cells, each of which has the same automatically generated class; the two dimensional interface is to display the data points with visual characteristics corresponding to the automatically generated classes of their corresponding one or more cells; for the cell from the set of one or more additional cells: the class determined for that cell using at least the set of two dimensional regions is a user defined class; the method further comprises: determining an automatically generated class for that cell by applying the clustering algorithm; and after the user defined class is determined for that cell, displaying a data point corresponding to that cell with a characteristic corresponding to the automatically generated class for that cell.

[0237] Example 7

[0238] The method of example 6, wherein the characteristics corresponding to the automatically generated classes are colors.

[0239] Example 8

[0240] The method of any of examples 6-7, wherein the clustering algorithm is a community detection algorithm.

[0241] Example 9

[0242] The method of any of examples 1-8, wherein, for the cell from the set of one or more additional cells: determining the class for that cell is performed while that cell flows through a flow channel; and the method further comprises determining to route that cell to a particular well corresponding to the class determined for that cell.

[0243] Example 10

[0244] The method of example 9, wherein, the method further comprises, for the cell from the set of one or more additional cells: determining whether routing that cell to the particular well corresponding to the class determined for that cell results in a threshold number of cells having been routed to the particular well corresponding to the class determined for that cell; and determining to flush that cell to the particular well corresponding to the class determinedfor that cell using at least a determination that the threshold number of cells have been routed to the particular well corresponding to the class determined for that cell.

[0245] Example 11

[0246] The method of example 10, wherein for the cell from the set of one or more additional cells, the threshold number of cells is a maximum number of cells collectable in the particular well corresponding to the class determined for that cell.

[0247] Example 12

[0248] The method of any of examples 9-11, wherein the method further comprises, for a second cell from the set of one or more additional cells: determining a class for that cell using at least the set of two dimensional regions; making a prioritization determination, wherein the prioritization determination comprises determining that there is at least one class which: has a higher priority than the class determined for that cell; and corresponds to a particular well to which the threshold number of cells have not been routed; and determining, using at least the priority determination, to route that cell to waste.

[0249] Example 13

[0250] The method of any of examples 1-12, wherein the method further comprises, for a second cell from the set of one or more additional cells: obtaining a plurality of images for that cell; for a first image from the plurality of images for that cell, determining a location in visualization space which corresponds to a first class; for a second image from the plurality of images for that cell, determining a location in visualization space which corresponds to a second class; and determining to route that cell to waste using a least a correspondence between two different classes of locations for images of that cell.

[0251] Example 14

[0252] The method of any of examples 1-13, wherein, for the cell from the set of one or more additional cells: determining the class for that cell using at least the set of two dimensional regions comprises: determining a location for that cell in the visualization space; and determining that the location for that cell in the visualization space falls within a first region from the set of two dimensional regions and a second region from the set of two dimensional regions, wherein the first region corresponds to a first class, and the second region corresponds to a second class; and the method further comprises determining a destination to route that cell using at least a priority of the first class and a priority of the second class.

[0253] Example 15

[0254] The method of any of examples 1-14, wherein the method further comprises: determining an imaged pattern and a routed pattern using at least, for each cell from the set ofone or more additional cells: receiving a first time, wherein the first time is when that cell passes through a first location in a cell analyzer; receiving a second time, wherein the second time is when that cell has traveled a distance from the first location in the cell analyzer; and adding the first time to the imaged pattern and the second time to the routed pattern; and periodically, with a frequency of one time per pattern period: determining a delay associated with traveling the distance from the first location in the cell analyzer using at least a determination of an offset between the imaged pattern and routed patterns over a most recent preceding pattern period; and resetting the imaged pattern and the routed pattern.

[0255] Example 16

[0256] The method of example 15, wherein the pattern period is one second.

[0257] Example 17

[0258] The method of any of examples 1-16, wherein: generating the two dimensional interface comprises generating data to display the two dimensional interface and sending the data to display the two dimensional interface to a user computer over a network connection; and receiving the set of two dimensional regions comprises receiving the set of two dimensional regions over the network connection.

[0259] Example 18

[0260] The method of any of examples 1-16, wherein: generating the two dimensional interface comprises displaying the two dimensional interface on a screen; and receiving the set of two dimensional regions comprises receiving a each region as it is defined by a user using a set of region definition tools in the two dimensional interface.

[0261] Example 19

[0262] A system comprising a processing module to perform the method of any of examples 1-18.

[0263] Example 20

[0264] A method comprising: performing an initial automatic class generation comprising, for each of a plurality of cells, determining an automatically generated class for that cell by applying a clustering algorithm; storing, in a non-transitory computer readable medium: a plurality of user generated classes; and for each of the user generated classes, a membership condition for that class; after the initial automatic class generation, for each of a set of additional cells, receiving one or more cell images depicting that cell; and for a cell from the set of one or more additional cells: determining an automatically generated class for that cell by applying the clustering algorithm; and for a user generated class from the plurality of user generated classes, determining that that cell corresponds to that user generated class using atleast a determination that that cell satisfies the membership condition for that user generated class.

[0265] Example 21

[0266] The method of example 20, wherein: the clustering algorithm clusters cells in a feature space, wherein the feature space has at least four dimensions; and for each user generated class from the plurality of user generated classes, the membership condition for that class uses at least a location in a two dimensional space.

[0267] Example 22

[0268] The method of example 21, wherein: the two dimensional space comprises an array of locations; and for each user generated class from the plurality of user generated classes, the membership condition for that class is having a location in a subset of the array of locations which corresponds to that user generated class.

[0269] Example 23

[0270] The method of any of examples 21-22, wherein the method further comprises displaying an interface which: displays data points at locations in the two dimensional space using at least locations of the plurality of cells in feature space, wherein each of the data points corresponds to one or more cells from the plurality of cells; and displays the data points with characteristics corresponding to the automatically generated classes of the cells corresponding to those data points.

[0271] Example 24

[0272] The method of example 23, wherein the characteristics corresponding to the automatically generated classes are colors.

[0273] Example 25

[0274] The method of any of examples 20-24, wherein, for the cell from the set of one or more additional cells: determining the user generated class to which that cell corresponds is performed while that cell is flowing through a flow channel; and the method further comprises routing that cell to a particular well corresponding to the user generated class to which that cell corresponds.

[0275] Example 26

[0276] The method of example 25, wherein the method further comprises, for the cell from the set of one or more additional cells: determining whether routing that cell to the particular well corresponding to the user generated class to which that cell corresponds results in a threshold number of cells having been routed to the particular well corresponding to the user generated class to which that cell corresponds; and determining to flush that cell to theparticular well corresponding to the user generated class to which that cell corresponds using at least a determination that the threshold number of cells have been routed to the particular well corresponding to the user generated class to which that cell corresponds.

[0277] Example 27

[0278] The method of example 26, wherein, for the cell from the set of one or more additional cells, the threshold number of cells is a maximum number of cells collectable in the particular well corresponding to the user generated class to which the particular well corresponds.

[0279] Example 28

[0280] The method of any of examples 25-27, wherein the method further comprises, for a second cell from the set of one or more additional cells: determining that that cell corresponds to a second user generated class from the plurality of user generated classes; making a prioritization determination, wherein the prioritization determination comprises determining that there is at least one user generated class which: has a higher priority than the second user generated class; and corresponds to a well to which the threshold number of cells have not been routed; and determining, using at least the priority determination, to route that cell to waste.

[0281] Example 29

[0282] The method of any of examples 20-28, wherein the method further comprises: determining an imaged pattern and a routed pattern using at least, for each cell from the set of one or more additional cells: receiving a first time, wherein the first time is when that cell passes through a first location in a cell analyzer; receiving a second time, wherein the second time is when that cell has traveled a distance from the first location in the cell analyzer; and adding the first time to the imaged pattern and the second time to the routed pattern; and periodically, with a frequency of one time per pattern period: determining a delay associated with traveling the distance from the first location in the cell analyzer using at least an offset between the imaged pattern and routed patterns over a most recent preceding pattern period; and resetting the imaged pattern and the routed pattern.

[0283] Example 30

[0284] The method of example 29 wherein the pattern period is one second.

[0285] Example 31

[0286] The method of any of examples 20-30, wherein, for each cell from the set of additional cells, receiving one or more cell images depicting that cell comprises receiving the one or more cell images depicting that cell over a network connection.

[0287] Example 32

[0288] The method of any of examples 20-30, wherein, for each cell from the set of additional cells, receiving one or more cell images depicting that cell comprises capturing the one or more images depicting that cell using an imaging device.

[0289] Example 33

[0290] A system comprising a processing module to prepare the method of any of examples 20-32.

[0291] Example 1A

[0292] A method comprising: routing a first cell to a first destination from a plurality of destinations; determining whether routing the first cell to the first destination results in at least a threshold number of cells having been routed to the first destination; and in response to at least a determination that at least the threshold number of cells have been routed to the first destination, flushing the first cell to the first destination by performing one or more acts comprising introducing a flushing fluid into an upstream channel when the upstream channel has a fluidic coupling with the first destination.

[0293] Example 2 A

[0294] The method of example 1, wherein the method further comprises, prior to flushing the first cell to the first destination: routing a plurality of other cells to the first destination; and for each cell from the plurality of other cells, after routing that cell to the first destination, determining not to introduce the flushing fluid into the upstream channel in response at least in part to determining that the threshold number of cells has not been routed to the first destination.

[0295] Example 3 A

[0296] The method of any of examples 1A-2A, wherein: the plurality of destinations comprises a plurality of wells; the first destination is a first well which: is part of the plurality of wells; and is to hold a maximum number of cells; and the threshold number of cells is the maximum number of cells the first well is to hold.

[0297] Example 4 A

[0298] The method of any of examples 1 A-3 A, wherein the method further comprises, after flushing the first cell to the first destination: breaking the fluidic coupling between the first destination and the upstream channel; and fluidically coupling the upstream channel to a second destination from the plurality of destinations.

[0299] Example 5A

[0300] The method of example 4A, wherein: each well from the plurality of wells isassociated with a priority; the method further comprises: introducing the flushing fluid into the upstream channel a plurality of times; and following each time the flushing fluid is introduced into the upstream channel, identifying an active well, wherein: the active well is a new well from the plurality of wells identified as the well which is to be fluidically coupled to the upstream channeled when next the flushing fluid is introduced into the upstream channel; the active well does not contain any cells at the time it is identified as the active well; the active well has a priority which is not lower than any other well which does not contain any cells at the time it is identified as the active well; and the active well has a priority which is not higher than the priority of any well that does contain any cells at the time it is identified as the active well; and wherein each time the flushing fluid is introduced into the upstream channel, a different well from the plurality of wells is the active well, and the well which is then the active well is fluidically coupled with the upstream channel.

[0301] Example 6A

[0302] The method of any of examples 1 A-5A, wherein: the first cell is of a first type; and the method further comprises, after flushing the first cell to the first destination, routing a second cell of the first type to waste.

[0303] Example 7A

[0304] The method of any of examples 1A-6A, wherein routing the first cell to the first destination comprises, while the first cell is at a location in a flow channel upstream of the upstream channel: opening a first valve, wherein the first valve is downstream of the location of the first cell by a first distance and is between the flow channel the upstream channel; and closing a second valve, wherein the second valve is downstream of the location of the first cell by a first distance and is between the flow channel and a second channel.

[0305] Example 8 A

[0306] The method of example 7A, wherein the method further comprises: receiving a delay value, wherein the delay value is a time for traveling the first distance from the location in the flow channel; and determining when to open the first valve and close the second valve using at least the delay value.

[0307] Example 9 A

[0308] The method of any of examples 1A-8A, wherein the method is performed using a field programmable gate array.

[0309] Example 10A

[0310] The method of example 9A, wherein the field programmable gate array is a part of a cell analysis system.

[0311] Example 11A

[0312] A system comprising a processing module to perform a method comprising the method of an of examples 1 A-8A.

[0313] Example 12A

[0314] A method comprising: receiving a set of imaging signals by, for each cell from a set of cells, receiving a corresponding imaging signal indicating presence of that cell at an imaging location at a time corresponding to that imaging signal; receiving a set of routing signals by, for each cell from the set of cells, receiving a corresponding routing signal indicating that cell has traveled a distance from the imaging location at a time corresponding to the routing signal; and determining a time offset between the set of imaging signals and the set of routing signals, wherein the time offset is a delay value to use in routing cells detected at the imaging location into one of a set of channels.

[0315] Example 13 A

[0316] The method of example 12 A, wherein determining the time offset between the set of imaging signals and the set of routing signals comprises: matching a first pattern with a second pattern, wherein the first pattern is a pattern of two or more signals from the set of imaging signals, and the second pattern is a pattern of two or more signals from the set of routing signals; and defining the time offset using at least a time difference between corresponding signals in the first and second patterns.

[0317] Example 14A

[0318] The method of example 13 A, wherein matching the first pattern with the second pattern comprises identifying the first pattern as matching the second pattern using at least sequences of time delays between consecutive signals in the first and second patterns.

[0319] Example 15A

[0320] The method of any of examples 12A-14A, wherein, for each imaging signal from the set of imaging signals: that imaging signal comprises a frame number for when the cell corresponding to that imaging signal is at the imaging location; the method further comprises determining the time the cell corresponding to that imaging signal is at the imaging location using at least the frame number that is part of that imaging signal and a frame rate of a camera used for capturing images of the cells from the set of cells.

[0321] Example 16A

[0322] The method of any of examples 12A-15A, wherein: for each channel from the set of channels, that channel comprises a location which is the distance from the imaging location; and for each routing signal from the set of routing signals, that signal indicates a channel fromthe set of channels in which the cell corresponding to that routing signal was located at the time corresponding to that routing signal.

[0323] Example 17A

[0324] The method of example 16A, wherein the method further comprises calculating one or more statistical measures using at least cell passage data comprising, for each routing signal from the set of routing signals, the channel in which the cell corresponding to that routing signal was located at the time corresponding to that routing signal.

[0325] Example 18A

[0326] The method of example 17A, wherein: each cell from the set of cells has a cell type from a set of cell types; the set of channels comprises a first channel and a second channel; and the statistical measures comprise, for at least one cell type from the set of cell types: a percentage of cells of that type which are collected, using at least a number of cells of that type corresponding to routing signals indicating that their corresponding cells were located in the first channel, divided by a total number of cells of that type in the set of cells; a percentage of cells of that type which are not collected using at least a number of cells of that type corresponding to routing signals indicating that their corresponding cells are located in the second channel, divided by the total number of cells of that type in the set of cells: or a combination thereof.

[0327] Example 19A

[0328] The method of any of examples 16A-18A, wherein determining the time offset between the set of imaging signals and the set of routing signals comprises determining the time offset using at least routing signals corresponding to times falling within a fixed time span preceding the determination of the time offset and imaging signals corresponding to the cells which corresponded to those routing signals.

[0329] Example 20 A

[0330] The method of example 19A, wherein the method further comprises periodically repeating determining the time offset between the set of imaging signals and the set of routing signals, wherein the determination of the time offset is repeated with a repetition period equal in length to the fixed time span.

[0331] Example 21A

[0332] The method of example 20A, wherein, on at least one repetition of the determination of the time offset, determining the time offset between the set of imaging signals and the set of routing signals comprises considering a carryover imaging signal, wherein: the time corresponding to the carryover imaging signal is outside of the fixed time span preceding thatdetermination of the time offset; and the cell corresponding to the carryover imaging signal corresponds to a routing signal corresponding to a time falling within the fixed time span preceding that determination of the time offset.

[0333] Example 22 A

[0334] The method of example 21 A wherein the method comprises, for each of a plurality of repetitions of the determination of the time offset, during the fixed time span which begins with that repetition, route a plurality of cells using the time offset determined at the beginning of that fixed time span.

[0335] Example 23 A

[0336] The method of any of examples 19A-22A, wherein the fixed time span is one second.

[0337] Example 24 A

[0338] The method of any of examples 16A-23A, wherein, for each routing signal from the set of routing signals, that routing signal comprises a change in intensity of a laser indicating passage of the cell corresponding to that routing signal through a channel from the set of channels.

[0339] Example 25A

[0340] The method of any of examples 12A-24A, wherein: receiving the set of imaging signals comprises, for each imaging signal from the set of imaging signals, receiving that imaging signal over a network connection; and receiving the set of routing signals comprises, for each routing signal from the set of routing signals, receiving that routing signal over the network connection.

[0341] Example 26A

[0342] The method of any of examples 12A-24A, wherein the method is performed using a processor located proximate a cell analysis system used to capture images of the cells from the set of cells.

[0343] Example 27A

[0344] A system comprising a processing module to perform the method of any of examples 12A-25A.

[0345] XI. Miscellaneous

[0346] While the examples provided above include cells as a type of particle which may be imaged and classified, the teachings herein may be readily applied to other contexts where other kinds of particles (e.g., beads) are used in addition to or in lieu of cells as described.

[0347] The foregoing description is provided to enable a person skilled in the art to practicethe various configurations described herein. While the subject technology has been particularly described with reference to the various figures and configurations, these are for illustration purposes only, not limitation. The subject matter described herein is not limited in its application to the details of construction and the arrangement of components set forth in the description herein or illustrated in the drawings hereof. The subject matter described herein is capable of other implementations and of being practiced or of being carried out in various ways.

[0348] It is to be understood that the above description is intended to be illustrative, and not restrictive. For example, the above-described examples (and / or aspects thereof) may be used in combination with each other. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the presently described subj ect matter without departing from its scope. While the dimensions, types of materials and coatings described herein are intended to define the parameters of the disclosed subject matter, they are by no means limiting and instead illustrations. Many further examples will be apparent to those of skill in the art upon reviewing the above description. The scope of the disclosed subject matter is, therefore, to be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. Further, the limitations of the following claims are not written in means — plus-function format and are not intended to be interpreted based on 35 U.S.C. §112(f), unless and until such claim limitations expressly use the phrase “means for” followed by a statement of function void of further structure.

[0349] The following claims recite aspects of certain examples of the disclosed subject matter and are considered to be part of the above disclosure. These aspects may be combined with one another.

[0350] While preferred embodiments of the present invention have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. It is not intended that the invention be limited by the specific examples provided within the specification. While the invention has been described with reference to the aforementioned specification, the descriptions and illustrations of the embodiments herein are not meant to be construed in a limiting sense. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the invention. Furthermore, it shall be understood that all aspects of the invention are not limited to the specific depictions, configurations or relative proportions set forth herein which depend upon a variety of conditions and variables. It should be understood that various alternatives to the embodiments of the invention described herein may be employed in practicing the invention. It is therefore contemplated that the invention shall also cover any such alternatives,modifications, variations or equivalents. It is intended that the following claims define the scope of the invention and that methods and structures within the scope of these claims and their equivalents be covered thereby.

Claims

CLAIMSWhat is claimed is:

1. A method comprising: for each cell in a set of cells, determining a corresponding location in a feature space using at least one of one or more cell images which depict that cell, wherein the feature space has more than three dimensions; for each cell in the set of cells, determining a corresponding location in a visualization space using at least the corresponding location in the feature space for that cell, wherein the visualization space has two dimensions; generating a two dimensional interface to display data points at locations in the visualization space; receiving a set of two dimensional regions in the visualization space; and for a cell from a set of one or more additional cells, determining a class for that cell using at least the set of two dimensional regions.

2. The method of claim 1, wherein: each region from the set of two dimensional regions corresponds to a class; and for the cell from the set of one or more additional cells, determining the class for that cell using at least the set of two dimensional regions comprises:• determining a location for that cell in the visualization space; and• determining the class for that cell as the class corresponding to a region from the set of two dimensional regions which contains the location of that cell in the visualization space.

3. The method of claim 2, wherein: the two dimensional interface displays the data points in a two dimensional array; the method further comprises, for each region from the set of two dimensional regions, storing data associating each location in the two dimensional array which falls within that two dimensional region with the class corresponding to that two dimensional region; for the cell from the set of one or more additional cells, determining the class for that cell comprises:• determining a location for that cell in the two dimensional array using at least the location for that cell in the visualization space; and• determining that the class for that cell is the class associated with the location for that cell in the two dimensional array.

4. The method of claim 1, wherein: each region from the set of two dimensional regions corresponds to a class; and the method further comprises defining a set of regions on the feature space using at least, for each region from the set of two dimensional regions, determining a region in the feature space corresponding to that two dimensional region by performing acts comprising:• identifying a set of data points displayed within that two dimensional region in the two dimensional interface;• identifying locations in the feature space corresponding to the set of data points;• identifying a region in the feature space circumscribed by a convex hull containing each of the locations in feature space identified as corresponding to the set of data points; and• defining the region circumscribed by the convex hull as corresponding to the class corresponding to that two dimensional region; and for the cell from the set of one or more additional cells, determining the class for that cell using at least the set of two dimensional regions comprises:• determining a location for that cell in the feature space;• identifying, a region from the set of regions in the feature space which contains the location for that additional cell in the feature space; and• determining that the class for that additional cell is the class corresponding to the region in the feature space identified as containing the location for that additional cell in the feature space.

5. The method of claim 1, wherein the set of two dimensional regions comprises at least one region which is non-contiguous in the visualization space.

6. The method of claim 1, wherein:the method further comprises determining automatically generated classes for each of the set of cells by applying a clustering algorithm; each data point in the two dimensional interface corresponds to one or more cells, each of which has the same automatically generated class; the two dimensional interface is to display the data points with visual characteristics corresponding to the automatically generated classes of their corresponding one or more cells; for the cell from the set of one or more additional cells:• the class determined for that cell using at least the set of two dimensional regions is a user defined class;• the method further comprises:° determining an automatically generated class for that cell by applying the clustering algorithm; and° after the user defined class is determined for that cell, displaying a data point corresponding to that cell with a characteristic corresponding to the automatically generated class for that cell.

7. The method of claim 6, wherein the characteristics corresponding to the automatically generated classes are colors.

8. The method of claim 6, wherein the clustering algorithm is a community detection algorithm.

9. The method of claim 1, wherein, for the cell from the set of one or more additional cells: determining the class for that cell is performed while that cell flows through a flow channel; and the method further comprises determining to route that cell to a particular well corresponding to the class determined for that cell.

10. The method of claim 9, wherein, the method further comprises, for the cell from the set of one or more additional cells: determining whether routing that cell to the particular well corresponding to the class determined for that cell results in a threshold number of cells having been routed to the particular well corresponding to the class determined for that cell; anddetermining to flush that cell to the particular well corresponding to the class determined for that cell using at least a determination that the threshold number of cells have been routed to the particular well corresponding to the class determined for that cell.

11. The method of claim 10, wherein for the cell from the set of one or more additional cells, the threshold number of cells is a maximum number of cells collectable in the particular well corresponding to the class determined for that cell.

12. The method of claim 9, wherein the method further comprises, for a second cell from the set of one or more additional cells: determining a class for that cell using at least the set of two dimensional regions; making a prioritization determination, wherein the prioritization determination comprises determining that there is at least one class which:• has a higher priority than the class determined for that cell; and• corresponds to a particular well to which the threshold number of cells have not been routed; and determining, using at least the priority determination, to route that cell to waste.

13. The method of claim 1, wherein the method further comprises, for a second cell from the set of one or more additional cells: obtaining a plurality of images for that cell; for a first image from the plurality of images for that cell, determining a location in visualization space which corresponds to a first class; for a second image from the plurality of images for that cell, determining a location in visualization space which corresponds to a second class; and determining to route that cell to waste using a least a correspondence between two different classes of locations for images of that cell.

14. The method of claim 1, wherein, for the cell from the set of one or more additional cells: determining the class for that cell using at least the set of two dimensional regions comprises:• determining a location for that cell in the visualization space; and• determining that the location for that cell in the visualization space falls within a first region from the set of two dimensional regions and asecond region from the set of two dimensional regions, wherein the first region corresponds to a first class, and the second region corresponds to a second class; and the method further comprises determining a destination to route that cell using at least a priority of the first class and a priority of the second class.

15. The method of claim 1, wherein the method further comprises: determining an imaged pattern and a routed pattern using at least, for each cell from the set of one or more additional cells:• receiving a first time, wherein the first time is when that cell passes through a first location in a cell analyzer;• receiving a second time, wherein the second time is when that cell has traveled a distance from the first location in the cell analyzer; and• adding the first time to the imaged pattern and the second time to the routed pattern; and periodically, with a frequency of one time per pattern period:• determining a delay associated with traveling the distance from the first location in the cell analyzer using at least a determination of an offset between the imaged pattern and routed patterns over a most recent preceding pattern period; and• resetting the imaged pattern and the routed pattern.

16. The method of claim 15, wherein the pattern period is one second.

17. The method of claim 1, wherein: generating the two dimensional interface comprises generating data to display the two dimensional interface and sending the data to display the two dimensional interface to a user computer over a network connection; and receiving the set of two dimensional regions comprises receiving the set of two dimensional regions over the network connection.

18. The method of claim 1, wherein: generating the two dimensional interface comprises displaying the two dimensional interface on a screen; andreceiving the set of two dimensional regions comprises receiving a each region as it is defined by a user using a set of region definition tools in the two dimensional interface.

19. A system comprising a processing module to perform a method comprising: for each cell in a set of cells, determining a corresponding location in a feature space using at least one of one or more cell images which depict that cell, wherein the feature space has more than three dimensions; for each cell in the set of cells, determining a corresponding location in a visualization space using at least the corresponding location in the feature space for that cell, wherein the visualization space has two dimensions; generating a two dimensional interface to display data points at locations in the visualization space; receiving a set of two dimensional regions in the visualization space; and for a cell from a set of one or more additional cells, determining a class for that cell using at least the set of two dimensional regions.

20. The system of claim 19, wherein: each region from the set of two dimensional regions corresponds to a class; and for the cell from the set of one or more additional cells, determining the class for that cell using at least the set of two dimensional regions comprises:• determining a location for that cell in the visualization space; and• determining the class for that cell as the class corresponding to a region from the set of two dimensional regions which contains the location of that cell in the visualization space.

21. The system of claim 20, wherein: the two dimensional interface displays the data points in a two dimensional array; the method further comprises, for each region from the set of two dimensional regions, storing data associating each location in the two dimensional array which falls within that two dimensional region with the class corresponding to that two dimensional region; for the cell from the set of one or more additional cells, determining the class for that cell comprises:• determining a location for that cell in the two dimensional array using at least the location for that cell in the visualization space; and• determining that the class for that cell is the class associated with the location for that cell in the two dimensional array.

22. The system of claim 19, wherein: each region from the set of two dimensional regions corresponds to a class; and the method further comprises defining a set of regions on the feature space using at least, for each region from the set of two dimensional regions, determining a region in the feature space corresponding to that two dimensional region by performing acts comprising:• identifying a set of data points displayed within that two dimensional region in the two dimensional interface;• identifying locations in the feature space corresponding to the set of data points;• identifying a region in the feature space circumscribed by a convex hull containing each of the locations in feature space identified as corresponding to the set of data points; and• defining the region circumscribed by the convex hull as corresponding to the class corresponding to that two dimensional region; and for the cell from the set of one or more additional cells, determining the class for that cell using at least the set of two dimensional regions comprises:• determining a location for that cell in the feature space;• identifying, a region from the set of regions in the feature space which contains the location for that additional cell in the feature space; and• determining that the class for that additional cell is the class corresponding to the region in the feature space identified as containing the location for that additional cell in the feature space.

23. The system of claim 19, wherein the set of two dimensional regions comprises at least one region which is non-contiguous in the visualization space.

24. The system of claim 19, wherein: the method further comprises determining automatically generated classes for each of the set of cells by applying a clustering algorithm;-n-each data point in the two dimensional interface corresponds to one or more cells, each of which has the same automatically generated class; the two dimensional interface is to display the data points with visual characteristics corresponding to the automatically generated classes of their corresponding one or more cells; for the cell from the set of one or more additional cells:• the class determined for that cell using at least the set of two dimensional regions is a user defined class;• the method further comprises:° determining an automatically generated class for that cell by applying the clustering algorithm; and° after the user defined class is determined for that cell, displaying a data point corresponding to that cell with a characteristic corresponding to the automatically generated class for that cell.

25. The system of claim 24, wherein the characteristics corresponding to the automatically generated classes are colors.

26. The system of claim 24, wherein the clustering algorithm is a community detection algorithm.

27. The system of claim 19, wherein, for the cell from the set of one or more additional cells: determining the class for that cell is performed while that cell flows through a flow channel; and the method further comprises determining to route that cell to a particular well corresponding to the class determined for that cell.

28. The system of claim 27, wherein, the method further comprises, for the cell from the set of one or more additional cells: determining whether routing that cell to the particular well corresponding to the class determined for that cell results in a threshold number of cells having been routed to the particular well corresponding to the class determined for that cell; and determining to flush that cell to the particular well corresponding to the class determined for that cell using at least a determination that the threshold numberof cells have been routed to the particular well corresponding to the class determined for that cell.

29. The system of claim 28, wherein for the cell from the set of one or more additional cells, the threshold number of cells is a maximum number of cells collectable in the particular well corresponding to the class determined for that cell.

30. The system of claim 27, wherein the method further comprises, for a second cell from the set of one or more additional cells: determining a class for that cell using at least the set of two dimensional regions; making a prioritization determination, wherein the prioritization determination comprises determining that there is at least one class which:• has a higher priority than the class determined for that cell; and• corresponds to a particular well to which the threshold number of cells have not been routed; and determining, using at least the priority determination, to route that cell to waste.

31. The system of claim 19, wherein the method further comprises, for a second cell from the set of one or more additional cells: obtaining a plurality of images for that cell; for a first image from the plurality of images for that cell, determining a location in visualization space which corresponds to a first class; for a second image from the plurality of images for that cell, determining a location in visualization space which corresponds to a second class; and determining to route that cell to waste using a least a correspondence between two different classes of locations for images of that cell.

32. The system of claim 19, wherein, for the cell from the set of one or more additional cells: determining the class for that cell using at least the set of two dimensional regions comprises:• determining a location for that cell in the visualization space; and• determining that the location for that cell in the visualization space falls within a first region from the set of two dimensional regions and a second region from the set of two dimensional regions, wherein the firstregion corresponds to a first class, and the second region corresponds to a second class; and the method further comprises determining a destination to route that cell using at least a priority of the first class and a priority of the second class.

33. The system of claim 19, wherein the method further comprises: determining an imaged pattern and a routed pattern using at least, for each cell from the set of one or more additional cells:• receiving a first time, wherein the first time is when that cell passes through a first location in a cell analyzer;• receiving a second time, wherein the second time is when that cell has traveled a distance from the first location in the cell analyzer; and• adding the first time to the imaged pattern and the second time to the routed pattern; and periodically, with a frequency of one time per pattern period:• determining a delay associated with traveling the distance from the first location in the cell analyzer using at least a determination of an offset between the imaged pattern and routed patterns over a most recent preceding pattern period; and• resetting the imaged pattern and the routed pattern.

34. The system of claim 33, wherein the pattern period is one second.

35. The system of claim 19, wherein: generating the two dimensional interface comprises generating data to display the two dimensional interface and sending the data to display the two dimensional interface to a user computer over a network connection; and receiving the set of two dimensional regions comprises receiving the set of two dimensional regions over the network connection.

36. The system of claim 19, wherein: generating the two dimensional interface comprises displaying the two dimensional interface on a screen; andreceiving the set of two dimensional regions comprises receiving a each region as it is defined by a user using a set of region definition tools in the two dimensional interface.

37. A method comprising: performing an initial automatic class generation comprising, for each of a plurality of cells, determining an automatically generated class for that cell by applying a clustering algorithm; storing, in a non-transitory computer readable medium:• a plurality of user generated classes; and• for each of the user generated classes, a membership condition for that class; after the initial automatic class generation, for each of a set of additional cells, receiving one or more cell images depicting that cell; and for a cell from the set of one or more additional cells:• determining an automatically generated class for that cell by applying the clustering algorithm; and• for a user generated class from the plurality of user generated classes, determining that that cell corresponds to that user generated class using at least a determination that that cell satisfies the membership condition for that user generated class.

38. The method of claim 37, wherein: the clustering algorithm clusters cells in a feature space, wherein the feature space has at least four dimensions; and for each user generated class from the plurality of user generated classes, the membership condition for that class uses at least a location in a two dimensional space.

39. The method of claim 38, wherein: the two dimensional space comprises an array of locations; and for each user generated class from the plurality of user generated classes, the membership condition for that class is having a location in a subset of the array of locations which corresponds to that user generated class.

40. The method of claim 38, wherein the method further comprises displaying an interface which:displays data points at locations in the two dimensional space using at least locations of the plurality of cells in feature space, wherein each of the data points corresponds to one or more cells from the plurality of cells; and displays the data points with characteristics corresponding to the automatically generated classes of the cells corresponding to those data points.

41. The method of claim 40, wherein the characteristics corresponding to the automatically generated classes are colors.

42. The method of claim 37, wherein, for the cell from the set of one or more additional cells: determining the user generated class to which that cell corresponds is performed while that cell is flowing through a flow channel; and the method further comprises routing that cell to a particular well corresponding to the user generated class to which that cell corresponds.

43. The method of claim 42, wherein the method further comprises, for the cell from the set of one or more additional cells: determining whether routing that cell to the particular well corresponding to the user generated class to which that cell corresponds results in a threshold number of cells having been routed to the particular well corresponding to the user generated class to which that cell corresponds; and determining to flush that cell to the particular well corresponding to the user generated class to which that cell corresponds using at least a determination that the threshold number of cells have been routed to the particular well corresponding to the user generated class to which that cell corresponds.

44. The method of claim 43, wherein, for the cell from the set of one or more additional cells, the threshold number of cells is a maximum number of cells collectable in the particular well corresponding to the user generated class to which the particular well corresponds.

45. The method of claim 42, wherein the method further comprises, for a second cell from the set of one or more additional cells: determining that that cell corresponds to a second user generated class from the plurality of user generated classes; making a prioritization determination, wherein the prioritization determination comprises determining that there is at least one user generated class which:• has a higher priority than the second user generated class; andcorresponds to a well to which the threshold number of cells have not been routed; and determining, using at least the priority determination, to route that cell to waste.

46. The method of claim 37, wherein the method further comprises: determining an imaged pattern and a routed pattern using at least, for each cell from the set of one or more additional cells:• receiving a first time, wherein the first time is when that cell passes through a first location in a cell analyzer;• receiving a second time, wherein the second time is when that cell has traveled a distance from the first location in the cell analyzer; and• adding the first time to the imaged pattern and the second time to the routed pattern; and periodically, with a frequency of one time per pattern period:• determining a delay associated with traveling the distance from the first location in the cell analyzer using at least an offset between the imaged pattern and routed patterns over a most recent preceding pattern period; and• resetting the imaged pattern and the routed pattern.

47. The method of claim 46, wherein the pattern period is one second.

48. The method of claim 37, wherein, for each cell from the set of additional cells, receiving one or more cell images depicting that cell comprises receiving the one or more cell images depicting that cell over a network connection.

49. The method of claim 37, wherein, for each cell from the set of additional cells, receiving one or more cell images depicting that cell comprises capturing the one or more images depicting that cell using an imaging device.

50. A system comprising a processing module to perform a method comprising: performing an initial automatic class generation comprising, for each of a plurality of cells, determining an automatically generated class for that cell by applying a clustering algorithm; storing, in a non-transitory computer readable medium:• a plurality of user generated classes; and• for each of the user generated classes, a membership condition for that class; after the initial automatic class generation, for each of a set of additional cells, receiving one or more cell images depicting that cell; and for a cell from the set of one or more additional cells:• determining an automatically generated class for that cell by applying the clustering algorithm; and• for a user generated class from the plurality of user generated classes, determining that that cell corresponds to that user generated class using at least a determination that that cell satisfies the membership condition for that user generated class.

51. The system of claim 50, wherein: the clustering algorithm clusters cells in a feature space, wherein the feature space has at least four dimensions; and for each user generated class from the plurality of user generated classes, the membership condition for that class uses at least a location in a two dimensional space.

52. The system of claim 51, wherein: the two dimensional space comprises an array of locations; and for each user generated class from the plurality of user generated classes, the membership condition for that class is having a location in a subset of the array of locations which corresponds to that user generated class.

53. The system of claim 51, wherein the method further comprises displaying an interface which: displays data points at locations in the two dimensional space using at least locations of the plurality of cells in feature space, wherein each of the data points corresponds to one or more cells from the plurality of cells; and displays the data points with characteristics corresponding to the automatically generated classes of the cells corresponding to those data points.

54. The system of claim 53, wherein the characteristics corresponding to the automatically generated classes are colors.

55. The system of claim 50, wherein, for the cell from the set of one or more additional cells:determining the user generated class to which that cell corresponds is performed while that cell is flowing through a flow channel; and the method further comprises routing that cell to a particular well corresponding to the user generated class to which that cell corresponds.

56. The system of claim 55, wherein the method further comprises, for the cell from the set of one or more additional cells: determining whether routing that cell to the particular well corresponding to the user generated class to which that cell corresponds results in a threshold number of cells having been routed to the particular well corresponding to the user generated class to which that cell corresponds; and determining to flush that cell to the particular well corresponding to the user generated class to which that cell corresponds using at least a determination that the threshold number of cells have been routed to the particular well corresponding to the user generated class to which that cell corresponds.

57. The system of claim 56, wherein, for the cell from the set of one or more additional cells, the threshold number of cells is a maximum number of cells collectable in the particular well corresponding to the user generated class to which the particular well corresponds.

58. The system of claim 55, wherein the method further comprises, for a second cell from the set of one or more additional cells: determining that that cell corresponds to a second user generated class from the plurality of user generated classes; making a prioritization determination, wherein the prioritization determination comprises determining that there is at least one user generated class which:• has a higher priority than the second user generated class; and• corresponds to a well to which the threshold number of cells have not been routed; and determining, using at least the priority determination, to route that cell to waste.

59. The system of claim 50, wherein the method further comprises: determining an imaged pattern and a routed pattern using at least, for each cell from the set of one or more additional cells:• receiving a first time, wherein the first time is when that cell passes through a first location in a cell analyzer;• receiving a second time, wherein the second time is when that cell has traveled a distance from the first location in the cell analyzer; and• adding the first time to the imaged pattern and the second time to the routed pattern; and periodically, with a frequency of one time per pattern period:• determining a delay associated with traveling the distance from the first location in the cell analyzer using at least an offset between the imaged pattern and routed patterns over a most recent preceding pattern period; and• resetting the imaged pattern and the routed pattern.

60. The system of claim 59, wherein the pattern period is one second.

61. The system of claim 50, wherein, for each cell from the set of additional cells, receiving one or more cell images depicting that cell comprises receiving the one or more cell images depicting that cell over a network connection.

62. The system of claim 50, wherein, for each cell from the set of additional cells, receiving one or more cell images depicting that cell comprises capturing the one or more images depicting that cell using an imaging device.

63. A method comprising: routing a first cell to a first destination from a plurality of destinations; determining whether routing the first cell to the first destination results in at least a threshold number of cells having been routed to the first destination; and in response to at least a determination that at least the threshold number of cells have been routed to the first destination, flushing the first cell to the first destination by performing one or more acts comprising introducing a flushing fluid into an upstream channel when the upstream channel has a fluidic coupling with the first destination.

64. The method of claim 63, wherein the method further comprises, prior to flushing the first cell to the first destination: routing a plurality of other cells to the first destination; andfor each cell from the plurality of other cells, after routing that cell to the first destination, determining not to introduce the flushing fluid into the upstream channel in response at least in part to determining that the threshold number of cells has not been routed to the first destination.

65. The method of claim 63, wherein: the plurality of destinations comprises a plurality of wells; the first destination is a first well which:• is part of the plurality of wells; and• is to hold a maximum number of cells; and the threshold number of cells is the maximum number of cells the first well is to hold.

66. The method of claim 63, wherein the method further comprises, after flushing the first cell to the first destination: breaking the fluidic coupling between the first destination and the upstream channel; and fluidically coupling the upstream channel to a second destination from the plurality of destinations.

67. The method of claim 66, wherein: each well from the plurality of wells is associated with a priority; the method further comprises:• introducing the flushing fluid into the upstream channel a plurality of times; and• following each time the flushing fluid is introduced into the upstream channel, identifying an active well, wherein:° the active well is a new well from the plurality of wells identified as the well which is to be fluidically coupled to the upstream channeled when next the flushing fluid is introduced into the upstream channel; the active well does not contain any cells at the time it is identified as the active well;° the active well has a priority which is not lower than any other well which does not contain any cells at the time it is identified as the active well; and° the active well has a priority which is not higher than the priority of any well that does contain any cells at the time it is identified as the active well; and wherein each time the flushing fluid is introduced into the upstream channel, a different well from the plurality of wells is the active well, and the well which is then the active well is fluidically coupled with the upstream channel.

68. The method of claim 63, wherein: the first cell is of a first type; and the method further comprises, after flushing the first cell to the first destination, routing a second cell of the first type to waste.

69. The method of claim 63, wherein routing the first cell to the first destination comprises, while the first cell is at a location in a flow channel upstream of the upstream channel: opening a first valve, wherein the first valve is downstream of the location of the first cell by a first distance and is between the flow channel the upstream channel; and closing a second valve, wherein the second valve is downstream of the location of the first cell by a first distance and is between the flow channel and a second channel.

70. The method of claim 69, wherein the method further comprises: receiving a delay value, wherein the delay value is a time for traveling the first distance from the location in the flow channel; and determining when to open the first valve and close the second valve using at least the delay value.

71. The method of claim 63, wherein the method is performed using a field programmable gate array.

72. The method of claim 69, wherein the field programmable gate array is a part of a cell analysis system.

73. A system comprising a processing module to perform a method comprising: routing a first cell to a first destination from a plurality of destinations;determining whether routing the first cell to the first destination results in at least a threshold number of cells having been routed to the first destination; and in response to at least a determination that at least the threshold number of cells have been routed to the first destination, flushing the first cell to the first destination by performing one or more acts comprising introducing a flushing fluid into an upstream channel when the upstream channel has a fluidic coupling with the first destination.

74. The system of claim 73, wherein the method further comprises, prior to flushing the first cell to the first destination: routing a plurality of other cells to the first destination; and for each cell from the plurality of other cells, after routing that cell to the first destination, determining not to introduce the flushing fluid into the upstream channel in response at least in part to determining that the threshold number of cells has not been routed to the first destination.

75. The system of claim 73, wherein: the plurality of destinations comprises a plurality of wells; the first destination is a first well which:• is part of the plurality of wells; and• is to hold a maximum number of cells; and the threshold number of cells is the maximum number of cells the first well is to hold.

76. The system of claim 73, wherein the method further comprises, after flushing the first cell to the first destination: breaking the fluidic coupling between the first destination and the upstream channel; and fluidically coupling the upstream channel to a second destination from the plurality of destinations.

77. The system of claim 76, wherein: each well from the plurality of wells is associated with a priority; the method further comprises: introducing the flushing fluid into the upstream channel a plurality of times; and• following each time the flushing fluid is introduced into the upstream channel, identifying an active well, wherein:° the active well is a new well from the plurality of wells identified as the well which is to be fluidically coupled to the upstream channeled when next the flushing fluid is introduced into the upstream channel; the active well does not contain any cells at the time it is identified as the active well;° the active well has a priority which is not lower than any other well which does not contain any cells at the time it is identified as the active well; and° the active well has a priority which is not higher than the priority of any well that does contain any cells at the time it is identified as the active well; and wherein each time the flushing fluid is introduced into the upstream channel, a different well from the plurality of wells is the active well, and the well which is then the active well is fluidically coupled with the upstream channel.

78. The system of claim 73, wherein: the first cell is of a first type; and the method further comprises, after flushing the first cell to the first destination, routing a second cell of the first type to waste.

79. The system of claim 73, wherein routing the first cell to the first destination comprises, while the first cell is at a location in a flow channel upstream of the upstream channel: opening a first valve, wherein the first valve is downstream of the location of the first cell by a first distance and is between the flow channel the upstream channel; and closing a second valve, wherein the second valve is downstream of the location of the first cell by a first distance and is between the flow channel and a second channel.

80. The system of claim 79, wherein the method further comprises: receiving a delay value, wherein the delay value is a time for traveling the first distance from the location in the flow channel; anddetermining when to open the first valve and close the second valve using at least the delay value.

81. A method comprising: receiving a set of imaging signals by, for each cell from a set of cells, receiving a corresponding imaging signal indicating presence of that cell at an imaging location at a time corresponding to that imaging signal; receiving a set of routing signals by, for each cell from the set of cells, receiving a corresponding routing signal indicating that cell has traveled a distance from the imaging location at a time corresponding to the routing signal; and determining a time offset between the set of imaging signals and the set of routing signals, wherein the time offset is a delay value to use in routing cells detected at the imaging location into one of a set of channels.

82. The method of claim 81 , wherein determining the time offset between the set of imaging signals and the set of routing signals comprises: matching a first pattern with a second pattern, wherein the first pattern is a pattern of two or more signals from the set of imaging signals, and the second pattern is a pattern of two or more signals from the set of routing signals; and defining the time offset using at least a time difference between corresponding signals in the first and second patterns.

83. The method of claim 82, wherein matching the first pattern with the second pattern comprises identifying the first pattern as matching the second pattern using at least sequences of time delays between consecutive signals in the first and second patterns.

84. The method of claim 81, wherein, for each imaging signal from the set of imaging signals: that imaging signal comprises a frame number for when the cell corresponding to that imaging signal is at the imaging location; the method further comprises determining the time the cell corresponding to that imaging signal is at the imaging location using at least the frame number that is part of that imaging signal and a frame rate of a camera used for capturing images of the cells from the set of cells.

85. The method of claim 81, wherein: for each channel from the set of channels, that channel comprises a location which is the distance from the imaging location; andfor each routing signal from the set of routing signals, that signal indicates a channel from the set of channels in which the cell corresponding to that routing signal was located at the time corresponding to that routing signal.

86. The method of claim 85, wherein the method further comprises calculating one or more statistical measures using at least cell passage data comprising, for each routing signal from the set of routing signals, the channel in which the cell corresponding to that routing signal was located at the time corresponding to that routing signal.

87. The method of claim 86, wherein: each cell from the set of cells has a cell type from a set of cell types; the set of channels comprises a first channel and a second channel; and the statistical measures comprise, for at least one cell type from the set of cell types:• a percentage of cells of that type which are collected, using at least a number of cells of that type corresponding to routing signals indicating that their corresponding cells were located in the first channel, divided by a total number of cells of that type in the set of cells;• a percentage of cells of that type which are not collected using at least a number of cells of that type corresponding to routing signals indicating that their corresponding cells are located in the second channel, divided by the total number of cells of that type in the set of cells: or• a combination thereof.

88. The method of claim 85, wherein determining the time offset between the set of imaging signals and the set of routing signals comprises determining the time offset using at least routing signals corresponding to times falling within a fixed time span preceding the determination of the time offset and imaging signals corresponding to the cells which corresponded to those routing signals.

89. The method of claim 88, wherein the method further comprises periodically repeating determining the time offset between the set of imaging signals and the set of routing signals, wherein the determination of the time offset is repeated with a repetition period equal in length to the fixed time span.

90. The method of claim 89, wherein, on at least one repetition of the determination of the time offset, determining the time offset between the set of imaging signals and the set of routing signals comprises considering a carryover imaging signal, wherein:the time corresponding to the carryover imaging signal is outside of the fixed time span preceding that determination of the time offset; and the cell corresponding to the carryover imaging signal corresponds to a routing signal corresponding to a time falling within the fixed time span preceding that determination of the time offset.

91. The method of claim 90 wherein the method comprises, for each of a plurality of repetitions of the determination of the time offset, during the fixed time span which begins with that repetition, route a plurality of cells using the time offset determined at the beginning of that fixed time span.

92. The method of claim 88, wherein the fixed time span is one second.

93. The method of claim 86, wherein, for each routing signal from the set of routing signals, that routing signal comprises a change in intensity of a laser indicating passage of the cell corresponding to that routing signal through a channel from the set of channels.

94. The method of claim 81, wherein: receiving the set of imaging signals comprises, for each imaging signal from the set of imaging signals, receiving that imaging signal over a network connection; and receiving the set of routing signals comprises, for each routing signal from the set of routing signals, receiving that routing signal over the network connection.

95. The method of claim 81, wherein the method is performed using a processor located proximate a cell analysis system used to capture images of the cells from the set of cells.

96. A system comprising a processing module to perform a method comprising: receiving a set of imaging signals by, for each cell from a set of cells, receiving a corresponding imaging signal indicating presence of that cell at an imaging location at a time corresponding to that imaging signal; receiving a set of routing signals by, for each cell from the set of cells, receiving a corresponding routing signal indicating that cell has traveled a distance from the imaging location at a time corresponding to the routing signal; and determining a time offset between the set of imaging signals and the set of routing signals, wherein the time offset is a delay value to use in routing cells detected at the imaging location into one of a set of channels.

97. The system of claim 96, wherein determining the time offset between the set of imaging signals and the set of routing signals comprises:matching a first pattern with a second pattern, wherein the first pattern is a pattern of two or more signals from the set of imaging signals, and the second pattern is a pattern of two or more signals from the set of routing signals; and defining the time offset using at least a time difference between corresponding signals in the first and second patterns.

98. The system of claim 97, wherein matching the first pattern with the second pattern comprises identifying the first pattern as matching the second pattern using at least sequences of time delays between consecutive signals in the first and second patterns.

99. The system of claim 96, wherein, for each imaging signal from the set of imaging signals: that imaging signal comprises a frame number for when the cell corresponding to that imaging signal is at the imaging location; the method further comprises determining the time the cell corresponding to that imaging signal is at the imaging location using at least the frame number that is part of that imaging signal and a frame rate of a camera used for capturing images of the cells from the set of cells.

100. The system of claim 96, wherein: for each channel from the set of channels, that channel comprises a location which is the distance from the imaging location; and for each routing signal from the set of routing signals, that signal indicates a channel from the set of channels in which the cell corresponding to that routing signal was located at the time corresponding to that routing signal.

101. The system of claim 100, wherein the method further comprises calculating one or more statistical measures using at least cell passage data comprising, for each routing signal from the set of routing signals, the channel in which the cell corresponding to that routing signal was located at the time corresponding to that routing signal.

102. The system of claim 101, wherein: each cell from the set of cells has a cell type from a set of cell types; the set of channels comprises a first channel and a second channel; and the statistical measures comprise, for at least one cell type from the set of cell types: a percentage of cells of that type which are collected, using at least a number of cells of that type corresponding to routing signals indicatingthat their corresponding cells were located in the first channel, divided by a total number of cells of that type in the set of cells;• a percentage of cells of that type which are not collected using at least a number of cells of that type corresponding to routing signals indicating that their corresponding cells are located in the second channel, divided by the total number of cells of that type in the set of cells: or• a combination thereof.

103. The system of claim 100, wherein determining the time offset between the set of imaging signals and the set of routing signals comprises determining the time offset using at least routing signals corresponding to times falling within a fixed time span preceding the determination of the time offset and imaging signals corresponding to the cells which corresponded to those routing signals.

104. The system of claim 103, wherein the method further comprises periodically repeating determining the time offset between the set of imaging signals and the set of routing signals, wherein the determination of the time offset is repeated with a repetition period equal in length to the fixed time span.

105. The system of claim 104, wherein, on at least one repetition of the determination of the time offset, determining the time offset between the set of imaging signals and the set of routing signals comprises considering a carryover imaging signal, wherein: the time corresponding to the carryover imaging signal is outside of the fixed time span preceding that determination of the time offset; and the cell corresponding to the carryover imaging signal corresponds to a routing signal corresponding to a time falling within the fixed time span preceding that determination of the time offset.

106. The system of claim 105 wherein the method comprises, for each of a plurality of repetitions of the determination of the time offset, during the fixed time span which begins with that repetition, route a plurality of cells using the time offset determined at the beginning of that fixed time span.

107. The system of claim 104, wherein the fixed time span is one second.

108. The system of claim 100, wherein, for each routing signal from the set of routing signals, that routing signal comprises a change in intensity of a laser indicating passage of the cell corresponding to that routing signal through a channel from the set of channels.

109. The system of claim 96, wherein: receiving the set of imaging signals comprises, for each imaging signal from the set of imaging signals, receiving that imaging signal over a network connection; and receiving the set of routing signals comprises, for each routing signal from the set of routing signals, receiving that routing signal over the network connection.

110. The system of claim 96, wherein the processing module is located proximate a cell analysis system used to capture images of the cells from the set of cells.

Citation Information

Patent Citations

  • Systems and methods for applying machine learning to analyze microcopy images in high-throughput systems

    CN113330292A

  • Disease condition analysis system based on colorectal cancer CTC morphological typing

    CN115862845A

  • Microparticle dispensing device, microparticle analysis device, reaction detection device, and methods using same

    CN116429665A

  • Systems and methods for particle analysis

    US20220081672A1

  • Cell classification based on mechanical signature of nucleus

    WO2018160874A1