Method and system for processing and displaying multi-channel spectral histograms

The method of generating and displaying multi-channel spectral histograms using color encoding and parallel processing addresses resource and latency issues, enabling efficient simultaneous display and improved system calibration and analysis.

JP7766686B2Active Publication Date: 2025-11-10BECTON DICKINSON & CO
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023521613
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-10-07
Filing Date
2021-08-19
Publication Date
2025-11-10
Estimated Expiration
2041-08-19

AI Technical Summary

Technical Problem

Flow-based particle detection and analysis systems face memory and processing resource intensity and latency issues when displaying multiple histograms simultaneously, limiting the ability to properly calibrate and optimize system performance.

Method used

A method for generating and displaying multi-channel spectral histograms using color encoding and parallel processing units to replicate colors for histogram values, allowing simultaneous display with reduced resource usage and latency.

Benefits of technology

Improves the efficiency of displaying multiple histograms in real-time, reducing processor and memory requirements, and enhances the ability to configure and analyze flow-based particle detection systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007766686000001
    Figure 0007766686000001
  • Figure 0007766686000002
    Figure 0007766686000002
  • Figure 0007766686000003
    Figure 0007766686000003
Patent Text Reader

Abstract

Aspects of the present disclosure include methods for processing and displaying multi-channel spectral histograms. The method, according to certain embodiments, includes acquiring a histogram of cytometry data of a sample including measurements from illuminated particles in the sample flowing in a flowstream, generating a representation of the histogram by encoding the histogram, and using the representation of the histogram to display the histogram, where the encoding includes assigning a color to each histogram value in the representation of the histogram and replicating each color corresponding to each histogram value in the representation of the histogram a predetermined number of times. Systems for implementing the subject methods are also provided. Non-transitory computer-readable storage media are also described.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] Flow-based particle detection and analysis systems, such as flow cytometers, are used to detect, analyze, and sometimes sort particles in a fluid sample based on at least one measured property of the particle.

[0002] Visualization of data obtained from flow-based particle detection and analysis systems is an important part of the analysis and characterization of collected data and is used, for example, in biological and medical research.

[0003] Visualization of data obtained from a flow-type particle detection system can include simultaneously displaying multiple histograms of data obtained from multiple different detector channels of the particle detection system, which simultaneous display of histograms can be used in understanding, analyzing, and characterizing particles exposed to the particle detection system, as well as configuring the particle detection system by understanding settings such as gain level adjustments needed to prevent saturation of the detection channels of the detection system or otherwise optimize performance.

[0004] Simultaneous display of different histograms is a memory and processing resource intensive operation and can result in long latency operations. Such limitations can limit the ability to simultaneously display multiple histograms of data and can adversely affect the usefulness of the collected data due, for example, to the resulting difficulty of properly calibrating a flow-based particle detection and analysis system. Summary of the Invention

[0005] The present invention introduces a novel technique that is more efficient in terms of memory and processor resources and latency for displaying histograms in a manner that allows multiple histograms to be displayed simultaneously, thereby improving the effectiveness of flow-based particle detection and analysis systems.

[0006] Aspects of the present disclosure include methods for processing and displaying multi-channel spectral histograms. The method, according to certain embodiments, includes obtaining a histogram of cytometry data of a sample including measurements from illuminated particles in the sample flowing in a flowstream, generating a representation of the histogram by encoding the histogram, and using the representation of the histogram to display the histogram, where the encoding includes assigning a color to each histogram value in the representation of the histogram and replicating each color corresponding to each histogram value in the representation of the histogram a predetermined number of times.

[0007] In some embodiments, the cytometry data includes light measurements from illuminated particles in a sample, which may in some cases be measurements of light intensity. In such embodiments, the cytometry data may include measurements of one or more of excitation light scattered by the particles primarily along the forward direction, excitation light scattered by the particles primarily along the lateral direction, and light emitted from fluorescent molecules or fluorescent dyes used to label the particles in one or more frequency ranges.

[0008] In some embodiments, the histogram includes a plurality of bins, and histogram values ​​are associated with the histogram bins. In such embodiments, each histogram bin may correspond to a range of measurements from illuminated particles in the sample, the measurements may be measurements of light intensity, and the histogram may be a spectral intensity histogram.

[0009] In other embodiments, using the representation of the histogram to display the histogram includes using the representation of the histogram to display the histogram on a display device. In yet other embodiments, the predetermined number is a number of pixels displayed horizontally in the displayed histogram. The predetermined number can be selected based on any desired width of the displayed histogram. For example, the predetermined number may be 1 or more, 2 or more, 4 or more, 16 or more, 32 or more, 128 or more, 512 or more, or 1024 or more. In some embodiments, the shape of the displayed histogram is rectangular, the vertical axis of the displayed histogram corresponds to histogram bins, and colors within the displayed histogram correspond to histogram values, with different colors within the displayed histogram corresponding to different histogram values.

[0010] In some embodiments, the representation of the histogram includes an array. In such embodiments, assigning a color to each histogram value in the representation of the histogram may include assigning a display color encoding to elements of the array along a vertical axis of the array, and / or assigning a color to each histogram value in the representation of the histogram may include assigning a display color encoding to no more than a single array element at each vertical position of the array. In some cases, the vertical axis of the array has 256 entries. In other cases, replicating each color corresponding to each histogram value in the representation of the histogram includes replicating elements of the array along a horizontal axis of the array. In embodiments, each element of the array corresponds to a pixel in the representation of the histogram, and / or elements of the array along the vertical axis correspond to pixels of the vertical axis in the representation of the histogram.

[0011] Embodiments of methods according to the present invention may further include determining a maximum value in a bin of the histogram and using the maximum value to determine a scale factor for assigning colors to the histogram values. In such embodiments, assigning colors to the histogram values ​​in the histogram representation may include scaling the histogram values ​​using the scale factor to generate scaled histogram values ​​and assigning colors corresponding to the histogram values ​​based on the scaled histogram values. Such embodiments may further include obtaining a color palette containing colors available for the histogram representation and using the scaled histogram values ​​to access the color palette and determine colors corresponding to the histogram values. In such embodiments, the color palette may be an array of different colors, and using the scaled histogram values ​​to access the color palette may include using the scaled histogram values ​​to index into the color palette array. In some cases, the color palette includes 256 colors. Furthermore, 8 bits may be used to represent each color in the histogram representation.

[0012] In some embodiments, colors can be assigned to multiple histogram values ​​substantially simultaneously. Such embodiments may further include assigning colors to multiple histogram values ​​substantially simultaneously using multiple parallel processing units. In some cases, the multiple parallel processing units comprise a graphics processing unit, possibly having more than 100 processing units, each processing unit configured to assign colors to histogram values ​​in the representation of the histogram substantially in parallel. In some cases, the graphics processing unit is located on a graphics processing card.

[0013] In some cases, the graphics processing unit receives as input a one-dimensional array corresponding to the histogram. In other cases, the graphics processing unit outputs a one-dimensional array corresponding to the representation of the histogram. In still other cases, replicating each color corresponding to each histogram value in the representation of the histogram is not performed by the graphics processing unit.

[0014] In some embodiments, generating the representation of the histogram is performed substantially in real time. Methods according to the present invention may further include adjusting settings for collecting cytometry data based on the representation of the histogram. In some cases, adjusting settings includes adjusting gain settings of detector channels for collecting cytometry data. In other cases, adjusting gain settings of detector channels for collecting cytometry data includes preventing saturation of detector channels.

[0015] According to some embodiments of the present invention, the method may include acquiring a plurality of histograms of cytometry data for a sample, generating a representation of the plurality of histograms according to any of the methods discussed herein, and using the representation of the plurality of histograms to display the plurality of histograms. In embodiments, each histogram of the plurality of histograms includes light measurements of the cytometry data acquired by each channel of a plurality of channels of one or more detectors. In other embodiments, each histogram of the plurality of histograms includes the same number of histogram bins. In yet other embodiments, corresponding histogram bins of each histogram of the plurality of histograms have the same range of measurements associated therewith.

[0016] In some embodiments, using the representation of the multiple histograms to display the multiple histograms includes using the representation of the multiple histograms to display the multiple histograms on a display device. In some cases, the representation of the multiple histograms includes a two-dimensional array. In such cases, a first dimension of the two-dimensional array may correspond to histogram bins, and a second dimension of the two-dimensional array may correspond to a histogram of the multiple histograms. In embodiments, the two or more representations of the histograms are generated substantially simultaneously. Other embodiments may further include adjusting settings for collecting cytometry data based on the display of the multiple histograms. In other cases, adjusting settings includes adjusting gain settings of one or more channels of one or more detectors for collecting cytometry data. In still other cases, adjusting gain settings of one or more channels of one or more detectors includes preventing saturation of one or more channels of one or more detectors.

[0017] In embodiments, generating a representation of each histogram of the plurality of histograms is performed substantially in real time. In other embodiments, obtaining a histogram of cytometry data for the sample comprises generating a histogram of data measurements from flow cytometric analysis of the sample.

[0018] Systems for practicing the subject methods are also provided. The system, according to certain embodiments, includes a general-purpose processor with a memory operatively coupled thereto, the memory having instructions stored thereon that, when executed by the general-purpose processor, cause the general-purpose processor to: acquire a histogram of cytometry data of a sample including measurements from illuminated particles in the sample flowing in a flow stream; transmit the histogram to a plurality of parallel processing units; receive from the plurality of parallel processing units a representation of the histogram including a color coding corresponding to each histogram value; replicate the color coding corresponding to the histogram values ​​in the representation of the histogram a predetermined number of times; and output the histogram to display the histogram on an output device. and a plurality of parallel processing units comprising a memory operatively connected to the general-purpose processor, the memory having instructions stored therein that, when executed by the plurality of parallel processing units, cause the plurality of parallel processing units to: receive a histogram from the general-purpose processor; generate a representation of the histogram by encoding the histogram, the encoding comprising assigning a color encoding to each histogram value in the representation of the histogram; and send the representation of the histogram to the general-purpose processor. In some embodiments, the system further comprises a display device operatively connected to the general-purpose processor, and wherein using the representation of the histogram to display the histogram on an output device comprises using the representation of the histogram to display the histogram on the display device.

[0019] In an embodiment, the representation of the histogram comprises an array, and optionally each element of the array corresponds to an output device pixel in the representation of the histogram, and optionally the elements of the array along a vertical axis correspond to output device pixels of the vertical axis in the representation of the histogram.

[0020] In some embodiments, the general-purpose processor is configured to determine a maximum value in a bin of the histogram and use the maximum value to determine a scale factor for assigning colors to the histogram values. In such embodiments, assigning color encodings to histogram values ​​in the representation of the histogram may include scaling the histogram values ​​using the scale factor to generate scaled histogram values ​​and assigning colors corresponding to the histogram values ​​based on the scaled histogram values. The general-purpose processor may be configured to obtain a color palette containing available colors for the histogram representation and use the scaled histogram values ​​to access the color palette and determine the colors corresponding to the histogram values. In some cases, the color palette is an array of different colors, and using the scaled histogram values ​​to access the color palette includes using the scaled histogram values ​​to index into the color palette array.

[0021] In embodiments of the system according to the present invention, the multiple parallel processing units may be further configured to substantially simultaneously assign color encodings to multiple histogram values ​​in the representation of the histogram. In some cases, the multiple parallel processing units comprise a graphics processing unit. In other cases, the graphics processing unit comprises more than 100 processing units, each processing unit configured to substantially simultaneously assign color encodings to histogram values ​​in the representation of the histogram. In yet other cases, the graphics processing unit is located on a graphics processing card.

[0022] In other embodiments of the system according to the invention, the multiple parallel processing units are further configured to receive multiple histograms of the cytometry data from the general-purpose processor, generate multiple histogram representations by encoding the multiple histograms, where the encoding includes assigning a color encoding to each histogram value in the multiple histogram representations, and send the multiple histogram representations to the general-purpose processor, where the general-purpose processor is further configured to use the histogram representations to display the multiple histograms on an output device. In some cases, the multiple parallel processing units are further configured to generate two or more histogram representations substantially simultaneously. In other cases, the system is configured to generate the multiple histogram representations for displaying the multiple histograms in substantially real time.

[0023] A non-transitory computer-readable storage medium according to certain embodiments includes instructions stored thereon, the instructions having an algorithm for obtaining a histogram of cytometry data of a sample including measurements from illuminated particles in the sample flowing in a flowstream, an algorithm for generating a representation of the histogram by encoding the histogram, and an algorithm for using the representation of the histogram to display the histogram, wherein the encoding includes assigning a color to each histogram value in the representation of the histogram and replicating each color corresponding to each histogram value in the representation of the histogram a predetermined number of times. [Brief explanation of the drawings]

[0024] The invention can be best understood from the following detailed description when read in conjunction with the accompanying drawings, in which:

[0025] [Figure 1] 1 shows an exemplary histogram display of cytometry data. [Figure 2-1]1 illustrates an exemplary multiple histogram display of cytometry data in accordance with certain embodiments. [Figure 2-2] 1 illustrates an exemplary multiple histogram display of cytometry data in accordance with certain embodiments. [Figure 2-3] 1 illustrates an exemplary multiple histogram display of cytometry data in accordance with certain embodiments. [Figure 3] FIG. 1 illustrates a functional block diagram of an example control system for a particle analyzer, in accordance with certain embodiments. [Figure 4] 1 illustrates a flow cytometer according to certain embodiments. [Figure 5] FIG. 1 illustrates a functional block diagram of a particle analysis system for sample analysis and particle characterization, according to certain embodiments. [Figure 6A] 1 shows a schematic diagram of a particle analyzer and sorter system in accordance with certain embodiments. [Figure 6B] 1 shows a schematic diagram of a particle analyzer and sorter system in accordance with certain embodiments. [Figure 7] 1 illustrates a block diagram of a computing system in accordance with certain embodiments. [Figure 8] FIG. 1 illustrates the processing of multiple histograms according to an embodiment of the present invention. [Figure 9] 1 shows another diagram of generating a representation of a histogram according to the present invention; [Figure 10] 1 shows a diagram of a process for replicating each color corresponding to each histogram value in a representation of a histogram a predetermined number of times, according to one embodiment. [Figure 11-1] 1 illustrates an overview of an exemplary workflow according to certain embodiments. [Figure 11-2] 1 illustrates an overview of an exemplary workflow according to certain embodiments. [Figure 12] 10 illustrates exemplary multiple histogram displays of cytometry data when detector channels are saturated, according to certain embodiments. DETAILED DESCRIPTION OF THE INVENTION

[0026] Aspects of the present disclosure include methods for generating a histogram representation of cytometry data for displaying the histogram. In embodiments, the method includes acquiring a histogram of cytometry data of a sample, the cytometry data including measurements from illuminated particles in the sample flowing in a flow stream; generating the histogram representation by encoding the histogram, where encoding includes assigning a color to each histogram value in the histogram representation and replicating each color corresponding to each histogram value in the histogram representation a predetermined number of times; and using the histogram representation to display the histogram. In other cases, the method includes displaying the histogram on a display device. In still other cases, the method includes assigning colors to multiple histogram values ​​substantially simultaneously, possibly using multiple parallel processing units, e.g., graphics processing units. If desired, the method also includes adjusting gain settings of detector channels, e.g., to prevent saturation of the channels. Systems for practicing the subject methods are also provided. A non-transitory computer-readable storage medium is also described.

[0027] Before the present invention is described in more detail, it is to be understood that this invention is not limited to particular embodiments described, as such may, of course, vary. It is also to be understood that the terminology used herein is for the purpose of describing particular embodiments only, and is not intended to be limiting, since the scope of the present invention will be limited only by the appended claims.

[0028] Where a range of values ​​is provided, unless the context clearly dictates otherwise, it is understood that each intervening value, to the tenth of the unit of the lower limit, between the upper and lower limits of that range, and any other stated or intervening value in the stated range, is encompassed within the invention. The upper and lower limits of these smaller ranges may independently be included in the smaller ranges and are also encompassed within the invention, subject to any specific excluded limit in the stated range. Where the stated range includes one or both of the limits, ranges excluding either or both of those included limits are also included in the invention.

[0029] Certain ranges are presented herein with numerical values ​​preceded by the term "about." The term "about" is used herein to provide literal support for the exact number it precedes, as well as a number that is near or approximately the number preceded by the term. In determining whether a number is near or approximately a specifically recited number, the near or approximately unrecited number may be a number that, in the context presented, provides substantial equivalence to the specifically recited number.

[0030] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Although any methods and materials similar or equivalent to those described herein can be used in the practice or testing of the present invention, representative exemplary methods and materials are described below.

[0031] All publications and patents cited herein are incorporated by reference to disclose and describe the methods and / or materials in connection with which the publications are cited, as if each individual publication or patent was specifically and individually indicated to be incorporated by reference. The citation of any publication is for its disclosure prior to the filing date and should not be construed as an admission that the present invention is not entitled to antedate such publication by virtue of prior invention. Further, the dates of publication provided may be different from the actual publication dates which may need to be independently confirmed.

[0032] It should be noted that, as used in this specification and the appended claims, the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. It should be further noted that the claims may be drafted to exclude any optional element. Accordingly, this statement is intended to serve as a precedent for the use of exclusive terminology such as "solely," "solely," and the like, or the use of "negative" limitations in connection with the recitation of claim elements.

[0033] As will be apparent to those skilled in the art upon reading this disclosure, each of the individual embodiments described and illustrated herein has distinct components and features which may be readily separated from or combined with the features of any of the other embodiments without departing from the scope or spirit of the invention. Any recited method can be carried out in the order of events recited or in any other order which is logically possible.

[0034] Although apparatus and methods have been or will be described with functional descriptions for the sake of grammatical fluidity, it is expressly understood that unless expressly recited under 35 U.S.C. § 112, the claims should not necessarily be construed as limited by construction of "means" or "step" limitations, but should be accorded the full scope of meaning and equivalents of the definitions provided by the claims under the doctrine of legal equivalents, and if the claims are expressly recited under 35 U.S.C. § 112, they should be accorded the full legal equivalents under 35 U.S.C. § 112.

[0035] As summarized above, the present disclosure provides methods for generating representations of histograms for displaying them. In further describing embodiments of the present disclosure, methods for displaying a histogram on a display device, assigning different display colors to histogram bins, and substantially simultaneously assigning colors to multiple histogram values, using parallel processing units such as graphics processing units, for example, to assign colors to multiple histogram values, and interfacing with the graphics processing units to generate representations of multiple histograms for displaying the histograms, are first described in more detail. Next, systems for practicing the subject methods are described. A non-transitory computer-readable storage medium is also described.

[0036] Method for processing and displaying multi-channel spectral histograms Aspects of the present disclosure include methods for generating a representation of a histogram for displaying the histogram. In particular, the present disclosure includes a method for acquiring a histogram of cytometry data of a sample, the cytometry data including measurements from illuminated particles in the sample flowing in a flowstream; generating the representation of the histogram by encoding the histogram, where the encoding includes assigning a color to each histogram value in the representation of the histogram and replicating each color corresponding to each histogram value in the representation of the histogram a predetermined number of times; and using the representation of the histogram to display the histogram. In some cases, the efficiency of displaying the histogram can be improved by generating a representation of the histogram and using it to display the histogram, such that more iterations of the histogram, each updated to reflect new or additional cytometry data, can be displayed more quickly and / or in real time, or multiple histograms can be displayed simultaneously. Additionally, the efficiency of displaying the histogram can be improved by generating a representation of the histogram and using it to display the histogram, which can result in fewer computing resources, such as reduced processor operation or data usage or memory access, such as high latency memory access. When used in connection with flow cytometry analysis of samples, the methods of the present invention can improve the ability to configure particle analysis systems as well as the analysis of collected data.

[0037] Cytometry Data In performing the methods of the present invention, cytometry data is obtained for a sample. The cytometry data includes measurements from illuminated particles in the sample flowing within a flow stream. For example, the cytometry data may include measurements of light detected when the sample is illuminated with a light source and light from the sample is detected with a light detection system having one or more photodetectors. In embodiments, such light measurements may include measurements of light intensity. As described in detail below, in some embodiments, the cytometry data may include measurements of one or more of excitation light scattered by the particles primarily along the forward direction, excitation light scattered by the particles primarily along the lateral direction, and light emitted from fluorescent molecules or fluorescent dyes used to label the particles in one or more frequency ranges. In embodiments of the present invention, obtaining a histogram of cytometry data for a sample includes generating a histogram of data measurements from flow cytometry analysis of the sample.

[0038] In some examples, the sample is a biological sample. The term "biological sample" is used in its conventional sense to refer to a whole organism, plant, fungus, or, in certain cases, a subset of animal tissues, cells, or component parts that may be found in blood, mucus, lymph, synovial fluid, cerebrospinal fluid, saliva, bronchoalveolar lavage, amniotic fluid, amniotic cord blood, urine, vaginal fluid, and semen. Thus, a "biological sample" refers to both a natural organism or a subset of its tissues, as well as homogenates, lysates, or extracts prepared from an organism or a subset of its tissues, including, but not limited to, plasma, serum, spinal fluid, lymph, skin sections, respiratory tract, gastrointestinal tract, cardiovascular, and urinary tract, tears, saliva, milk, blood cells, tumors, and organs. A biological sample can be any type of biological tissue, including both healthy and diseased tissue (e.g., cancerous, malignant, necrotic, etc.). In certain embodiments, the biological sample is a liquid sample such as blood or a derivative thereof, e.g., plasma, tears, urine, semen, etc., and in some cases the sample is a blood sample, including whole blood, such as blood obtained from a venipuncture or fingerstick (which may or may not be combined with any reagents, such as preservatives, anticoagulants, etc., prior to assay).

[0039] In some embodiments, the source of the sample is a "mammal" or "mammalian," which terms are used broadly to refer to organisms within the class Mammalia, including the orders Carnivora (e.g., dogs and cats), Rodentia (e.g., mice, guinea pigs, and rats), and Primates (e.g., humans, chimpanzees, and monkeys). In some cases, the subject is a human. The methods may be applied to cytometry data for samples obtained from human subjects of both genders and at any stage of development (i.e., newborn, infant, juvenile, adolescent, adult); in certain embodiments, the human subject is a juvenile, adolescent, or adult. It should be understood that while the present invention may be applied to cytometry data for samples from human subjects, it may also be implemented for cytometry data for samples from other animal subjects (i.e., within "non-human subjects"), such as, but not limited to, birds, mice, rats, dogs, cats, livestock, and horses.

[0040] In embodiments, a sample (e.g., in a flow stream of a flow cytometer) is illuminated with light from a light source. In some embodiments, the light source is a broadband light source that emits light having a broad range of wavelengths, e.g., spanning 50 nm or more, such as 100 nm or more, e.g., 150 nm or more, e.g., 200 nm or more, e.g., 250 nm or more, e.g., 300 nm or more, e.g., 350 nm or more, e.g., 400 nm or more, and 500 nm or more. For example, one suitable broadband light source emits light having a wavelength between 200 nm and 1500 nm. Another example of a suitable broadband light source includes a light source that emits light having a wavelength between 400 nm and 1000 nm. Where the method includes irradiating with a broadband light source, broadband light source protocols of interest may include, but are not limited to, a halogen lamp, a deuterium arc lamp, a xenon arc lamp, a stabilized fiber-coupled broadband light source, a broadband LED with a continuous spectrum, an ultra-bright light emitting diode, a semiconductor light emitting diode, a broad spectrum LED white light source, a multi-LED integrated white light source, or any combination thereof, among other broadband light sources.

[0041] In other embodiments, the method comprises irradiating with a narrowband light source emitting a specific wavelength or narrow range of wavelengths, such as a light source emitting light in a narrow range of wavelengths, e.g., 50 nm or less, e.g., 40 nm or less, e.g., 30 nm or less, e.g., 25 nm or less, e.g., 20 nm or less, e.g., 15 nm or less, e.g., 10 nm or less, e.g., 5 nm or less, e.g., 2 nm or less, including light sources emitting light of a specific wavelength (i.e., monochromatic light). When the method comprises irradiating with a narrowband light source, narrowband light source protocols of interest include, but are not limited to, narrow wavelength LEDs, laser diodes, or broadband light sources coupled to one or more optical bandpass filters, diffraction gratings, monochromators, or any combination thereof.

[0042] In certain embodiments, the method includes irradiating the sample with one or more lasers. As discussed above, the type and number of lasers will vary depending on the sample and the desired light collected, and can be gas lasers such as a helium-neon laser, an argon laser, a krypton laser, a xenon laser, a nitrogen laser, a CO laser, a CO laser, an argon fluorine (ArF) excimer laser, a krypton fluorine (KrF) excimer laser, a xenon chlorine (XeCl) excimer laser, or a xenon fluorine (XeF) excimer laser, or a combination thereof. In other instances, the method includes irradiating the flow stream with a dye laser, such as a stilbene, coumarin, or rhodamine laser. In still other instances, the method includes irradiating the flowstream with a metal vapor laser, such as a helium-cadmium (HeCd) laser, a helium-mercury (HeHg) laser, a helium-selenium (HeSe) laser, a helium-silver (HeAg) laser, a strontium laser, a neon-copper (NeCu) laser, a copper laser, or a gold laser, and combinations thereof. In still other instances, the method includes irradiating the flowstream with a solid-state laser, such as a ruby ​​laser, a Nd:YAG laser, a NdCrYAG laser, an Er:YAG laser, a Nd:YLF laser, a Nd:YVO4 laser, a Nd:YCa4O(BO3)3 laser, a Nd:YCOB laser, a titanium sapphire laser, a slim YAG laser, a ytterbium YAG laser, a Yb2O3 laser, or a cerium-doped laser, and combinations thereof.

[0043] The sample can be illuminated with one or more of the above light sources, including, for example, two or more light sources, for example, three or more light sources, for example, four or more light sources, for example, five or more light sources, and ten or more light sources. The light source can include a combination of any type of light source. For example, in some embodiments, the method includes illuminating the sample in the flowstream with a laser array, such as an array having one or more gas lasers, one or more dye lasers, and one or more solid-state lasers.

[0044] The sample may be illuminated with wavelengths ranging from 200 nm to 1500 nm, including, for example, 250 nm to 1250 nm, e.g., 300 nm to 1000 nm, e.g., 350 nm to 900 nm, and 400 nm to 800 nm. For example, if the light source is a broadband light source, the sample may be illuminated with wavelengths ranging from 200 nm to 900 nm. In other cases, if the light source includes multiple narrowband light sources, the sample may be illuminated with specific wavelengths ranging from 200 nm to 900 nm. For example, the light source may be multiple narrowband LEDs (1 nm to 25 nm), each independently emitting light having a wavelength range of 200 nm to 900 nm. In other embodiments, the narrowband light source includes one or more lasers (e.g., a laser array), and the sample is illuminated with specific wavelengths ranging from 200 nm to 700 nm, such as a laser array having a gas laser, excimer laser, dye laser, metal vapor laser, and solid-state laser, as described above.

[0045] When two or more light sources are used, the sample can be illuminated by the light sources simultaneously or sequentially, or a combination thereof. For example, the sample can be illuminated by each of the light sources simultaneously. In other embodiments, the flow stream is illuminated sequentially by each of the light sources. When two or more light sources illuminate the sample sequentially, the time for which each light source illuminates the sample can independently be 0.001 microseconds or more, including, for example, 0.01 microseconds or more, such as 0.1 microseconds or more, such as 1 microsecond or more, such as 5 microseconds or more, such as 10 microseconds or more, such as 30 microseconds or more, and 60 microseconds or more. For example, the method can include illuminating the sample with a light source (e.g., a laser) for a period ranging from 0.001 microseconds to 100 microseconds, including, for example, 0.01 microseconds to 75 microseconds, such as 0.1 microseconds to 50 microseconds, such as 1 microseconds to 25 microseconds, and 5 microseconds to 10 microseconds. In embodiments in which the sample is illuminated sequentially with two or more light sources, the duration for which the sample is illuminated by each light source may be the same or different.

[0046] The period between illumination by each light source can also vary, as needed, separated by a delay of 0.001 microseconds or more, e.g., 0.01 microseconds or more, e.g., 0.1 microseconds or more, e.g., 1 microsecond or more, e.g., 5 microseconds or more, e.g., up to 10 microseconds or more, e.g., up to 15 microseconds or more, e.g., up to 30 microseconds or more, and up to 60 microseconds or more. For example, the period between illumination by each light source can range from 0.001 microseconds to 60 microseconds, e.g., from 0.01 microseconds to 50 microseconds, e.g., from 0.1 microseconds to 35 microseconds, e.g., from 1 microsecond to 25 microseconds, and from 5 microseconds to 10 microseconds. In certain embodiments, the period between illumination by each light source is 10 microseconds. In embodiments in which the sample is illuminated sequentially by more than two (i.e., three or more) light sources, the delay between illumination by each light source can be the same or different.

[0047] The sample can be illuminated continuously or at discrete intervals. In some cases, the method includes continuously illuminating the sample within the sample with the light source. In other cases, the sample within the sample is illuminated with the light source at discrete intervals, such as illuminating at discrete intervals including every 0.001 milliseconds, every 0.01 milliseconds, every 0.1 milliseconds, every 1 millisecond, every 10 milliseconds, every 100 milliseconds, and every 1000 milliseconds, or some other interval.

[0048] Depending on the light source, the sample may be illuminated from varying distances, including, for example, 0.01 mm or more, such as 0.05 mm or more, for example, 0.1 mm or more, such as 0.5 mm or more, for example, 1 mm or more, such as 2.5 mm or more, for example, 5 mm or more, for example, 10 mm or more, such as 15 mm or more, for example, 25 mm or more, and 50 mm or more. The angle or illumination may also vary, for example, from 15° to 85°, for example, from 20° to 80°, for example, from 25° to 75°, and from 10° to 90°, including, for example, from 30° to 60° at a 90° angle.

[0049] In certain embodiments, the method includes illuminating the sample with two or more beams of frequency-shifted light. A light beam generator component having a laser and an acousto-optical device for frequency-shifting the laser light may be employed. In these embodiments, the method includes illuminating the acousto-optical device with a laser. Depending on the desired wavelength of light generated in the output laser beam (e.g., for use in illuminating a sample in a flow stream), the lasers may have specific wavelengths varying from 200 nm to 1500 nm, including, for example, 250 nm to 1250 nm, e.g., 300 nm to 1000 nm, e.g., 350 nm to 900 nm, and 400 nm to 800 nm. The acousto-optical device may be illuminated with one or more lasers, including, for example, two or more lasers, e.g., three or more lasers, e.g., four or more lasers, e.g., five or more lasers, and ten or more lasers. The lasers may include any combination of several types of lasers. For example, in some embodiments, the method includes illuminating the acousto-optical device with a laser array, such as an array having one or more gas lasers, one or more dye lasers, and one or more solid-state lasers.

[0050] When two or more lasers are employed, the acousto-optical device can be irradiated with the lasers simultaneously, sequentially, or a combination thereof. For example, the acousto-optical device can be irradiated with each of the lasers simultaneously. In other embodiments, the acousto-optical device is irradiated with each of the lasers sequentially. When two or more lasers are employed to sequentially irradiate the acousto-optical device, the time for which each laser irradiates the acousto-optical device can be individually 0.001 microseconds or more, including, for example, 0.01 microseconds or more, such as 0.1 microseconds or more, such as 1 microsecond or more, such as 5 microseconds or more, such as 10 microseconds or more, such as 30 microseconds or more, and 60 microseconds or more. For example, the method can include irradiating the acousto-optical device with the laser for a duration ranging from 0.001 microseconds to 100 microseconds, including, for example, 0.01 microseconds to 75 microseconds, such as 0.1 microseconds to 50 microseconds, such as 1 microsecond to 25 microseconds, and 5 microseconds to 10 microseconds. In embodiments in which the acousto-optic device is illuminated sequentially with two or more lasers, the duration for which the acousto-optic device is illuminated by each laser may be the same or different.

[0051] The period between illumination by each laser can also vary, as desired, separated by a delay of 0.001 microseconds or more, e.g., 0.01 microseconds or more, e.g., 0.1 microseconds or more, e.g., 1 microsecond or more, e.g., 5 microseconds or more, e.g., up to 10 microseconds or more, e.g., up to 15 microseconds or more, e.g., up to 30 microseconds or more, and 60 microseconds or more. For example, the period between illumination by each light source can range from 0.001 microseconds to 60 microseconds, e.g., from 0.01 microseconds to 50 microseconds, e.g., from 0.1 microseconds to 35 microseconds, e.g., from 1 microsecond to 25 microseconds, and e.g., from 5 microseconds to 10 microseconds. In certain embodiments, the period between illumination by each laser is 10 microseconds. In embodiments in which the acousto-optic device is illuminated sequentially by more than two (i.e., three or more) lasers, the delay between illumination by each laser can be the same or different.

[0052] The acousto-optic device can be illuminated continuously or at discrete intervals. In some cases, the method includes continuously illuminating the acousto-optic device with a laser. In other cases, the acousto-optic device is illuminated with a laser at discrete intervals, including, for example, illumination every 0.001 milliseconds, 0.01 milliseconds, 0.1 milliseconds, 1 millisecond, 10 milliseconds, 100 milliseconds, and 1000 milliseconds, or some other interval.

[0053] Depending on the laser, the acousto-optic device may be illuminated from different distances, including, for example, 0.01 mm or more, for example, 0.05 mm or more, for example, 0.1 mm or more, for example, 0.5 mm or more, for example, 1 mm or more, for example, 2.5 mm or more, for example, 5 mm or more, for example, 10 mm or more, for example, 15 mm or more, for example, 25 mm or more, and 50 mm or more. The angle or illumination may also vary, for example, from 15° to 85°, for example, from 20° to 80°, for example, from 25° to 75°, and from 10° to 90°, including, for example, from 30° to 60° at an angle of 90°.

[0054] In some embodiments, the method includes applying high frequency drive signals to an acousto-optic device to generate an angularly deflected laser beam. Two or more high frequency drive signals can be applied to the acousto-optic device to generate an output laser beam having a desired number of angularly deflected laser beams, including, for example, three or more high frequency drive signals, for example, four or more high frequency drive signals, for example, five or more high frequency drive signals, for example, six or more high frequency drive signals, for example, seven or more high frequency drive signals, for example, eight or more high frequency drive signals, for example, nine or more high frequency drive signals, for example, ten or more high frequency drive signals, for example, fifteen or more high frequency drive signals, for example, twenty-five or more high frequency drive signals, for example, fifty or more high frequency drive signals, and one hundred or more high frequency drive signals.

[0055] The angularly deflected laser beams generated by the high frequency drive signals each have an intensity based on the amplitude of the applied high frequency drive signal. In some embodiments, the method includes applying high frequency drive signals having an amplitude sufficient to generate an angularly deflected laser beam at a desired intensity. In some cases, each applied high frequency drive signal independently has an amplitude of about 0.001 V to about 500 V, including, for example, about 0.005 V to about 400 V, e.g., about 0.01 V to about 300 V, e.g., about 0.05 V to about 200 V, e.g., about 0.1 V to about 100 V, e.g., about 0.5 V to about 75 V, e.g., about 1 V to about 50 V, e.g., about 2 V to about 40 V, e.g., about 3 V to about 30 V, and about 5 V to about 25 V. In some embodiments, each applied high frequency drive signal has a frequency of about 0.001 MHz to about 500 MHz, including, for example, about 0.005 MHz to about 400 MHz, for example, about 0.01 MHz to about 300 MHz, for example, about 0.05 MHz to about 200 MHz, for example, about 0.1 MHz to about 100 MHz, for example, about 0.5 MHz to about 90 MHz, for example, about 1 MHz to about 75 MHz, for example, about 2 MHz to about 70 MHz, for example, about 3 MHz to about 65 MHz, for example, about 4 MHz to about 60 MHz, and about 5 MHz to about 50 MHz.

[0056] In these embodiments, the angularly deflected laser beams within the output laser beam are spatially separated. Depending on the applied high frequency drive signal and the desired illumination profile of the output laser beam, the angularly deflected laser beams can be separated by 0.001 μm or more, e.g., by 0.005 μm or more, e.g., by 0.01 μm or more, e.g., by 0.05 μm or more, e.g., by 0.1 μm or more, e.g., by 0.5 μm or more, e.g., by 1 μm or more, e.g., by 5 μm or more, e.g., by 10 μm or more, e.g., by 100 μm or more, e.g., by 500 μm or more, e.g., by 1000 μm or more, and by 5000 μm or more. In some embodiments, the angularly deflected laser beams overlap with adjacent angularly deflected laser beams, for example, along the horizontal axis of the output laser beam. The overlap between adjacent angularly deflected laser beams (e.g., beam spot overlap) can be, for example, an overlap of 0.005 μm or more, for example, an overlap of 0.01 μm or more, for example, an overlap of 0.05 μm or more, for example, an overlap of 0.1 μm or more, for example, an overlap of 0.5 μm or more, for example, an overlap of 1 μm or more, for example, an overlap of 5 μm or more, for example, an overlap of 10 μm or more, and an overlap of 100 μm or more.

[0057] In certain instances, the flow cytometry system of the present invention may be implemented in a manner similar to that described in Diebold, et al. Nature Photonics Vol. 7(10); 806-810 (2013), as well as in U.S. Patent Nos. 9,423,353, 9,784,661, 9,983,132, 10,006,852, 10,078,045, 10,036,699, 10,222,316, 10,288,546, 10,324,019, 10,408,758, 10,451,538, 10,620,111, and U.S. Patent Nos. A flow cytometry system configured to image particles in a flow stream by fluorescence imaging using radio frequency tagged emission (FIRE), such as those described in Patent Publication Nos. 2017 / 0133857, 2017 / 0328826, 2017 / 0350803, 2018 / 0275042, 2019 / 0376895, and 2019 / 0376894, the disclosures of which are incorporated herein by reference.

[0058] As discussed above, in several embodiments, light from the illuminated sample is transmitted to a light detection system and measured by a plurality of light detectors, as described in more detail below. In some embodiments, the method includes measuring the collected light over a range of wavelengths (e.g., 200 nm to 1000 nm). For example, the method may include collecting a spectrum of light over one or more wavelength ranges from 200 nm to 1000 nm. In still other embodiments, the method includes measuring the collected light at one or more specific wavelengths. For example, the collected light may be measured at one or more of the following wavelengths: 450 nm, 518 nm, 519 nm, 561 nm, 578 nm, 605 nm, 607 nm, 625 nm, 650 nm, 660 nm, 667 nm, 670 nm, 668 nm, 695 nm, 710 nm, 723 nm, 780 nm, 785 nm, 647 nm, 617 nm, and any combination thereof. In certain embodiments, the method includes measuring wavelengths of light corresponding to the fluorescence peak wavelengths of the fluorophores, hi some embodiments, the method includes measuring the collected light across the fluorescence spectrum of each fluorophore in the sample.

[0059] The collected light may be measured continuously or at discrete intervals. In some cases, the method includes measuring the light continuously. In other cases, the light is measured at discrete intervals, such as measuring light every 0.001 milliseconds, 0.01 milliseconds, 0.1 milliseconds, 1 millisecond, 10 milliseconds, 100 milliseconds, and 1000 milliseconds, or some other interval.

[0060] Measurement of collected light can be made one or more times during the subject methods, including, for example, two or more times, for example, three or more times, for example, five or more times, and ten or more times. In certain embodiments, light propagation is measured two or more times, and in certain cases, the data is averaged.

[0061] The light from the sample may be measured at one or more of these wavelengths, for example, at 5 or more different wavelengths, for example, at 10 or more different wavelengths, for example, at 25 or more different wavelengths, for example, at 50 or more different wavelengths, for example, at 100 or more different wavelengths, for example, at 200 or more different wavelengths, for example, at 300 or more different wavelengths, and including measuring collected light at 400 or more different wavelengths.

[0062] Histogram of cytometry data In embodiments, a histogram of cytometry data of a sample is obtained. A histogram of cytometry data refers to any suitable representation of cytometry data in histogram form, where the histogram is configured in any suitable manner (i.e., with any suitable number of histogram bins and any suitable set of measurements or measurement ranges associated with each bin). In some cases, the histogram of cytometry data may include cytometry data from a single channel of a single detector. In embodiments, the histogram includes multiple bins, and histogram values ​​are associated with the histogram bins. A histogram of interest may include two or more bins, 10 or more bins, 50 or more bins, 100 or more bins, 256 or more bins, or 1,000 or more bins. The bins of the histogram may correspond, for example, to a range of measurements from a channel of a detector, and the value in a particular histogram bin may correspond to the number of measurements from particles illuminated in the sample that fall within the range of measurements corresponding to that particular histogram bin. In other embodiments, the measurements are measurements of light intensity, such that the bins of the histogram may correspond to ranges of light intensity measurements, hi other embodiments, the histogram is a spectral intensity histogram.

[0063] 1 shows a display 100 of an exemplary histogram 120 of cytometry data for a sample in accordance with the present invention. The histogram 120 may also be represented as a two-dimensional plot 115 on an x-axis 105 and a y-axis 110. Alternatively, the histogram 120 may be represented as a one-dimensional array 120 of histogram bins, each containing a histogram value, and a color bar 130, in which a different color corresponds to each histogram value.

[0064] The x-axis 105 represents different data measurements of the cytometry data. In the present case, the x-axis can reflect the cytometry data and therefore can represent different ranges of measurements. For example, the x-axis (and cytometry data) can represent light measurements from illuminated particles in a sample, such as measurements of light intensity. In some embodiments, the x-axis (and cytometry data) represents one or more of forward scattered light (i.e., excitation light scattered by particles along a generally forward direction), side scattered light (i.e., excitation light scattered by particles along a generally sideward direction), and fluorescence (i.e., light emitted from fluorescent molecules or fluorescent dyes used to label particles in one or more frequency ranges). The x-axis shown in display 100 may be divided into discrete ranges of measurements, with each range associated with a histogram bin.

[0065] The y-axis 110 represents the value of each histogram bin, i.e., the number of measurements of particles in the sample that fall within each histogram bin. As mentioned above, FIG. 1 also shows a depiction of a histogram as a one-dimensional array 120. The array 120 is composed of multiple bins, such as individual bin 120a, each corresponding to one of multiple discrete ranges of measurements on the x-axis 105. Each bin of the histogram 120 contains an integer representing the number of measurements corresponding to particles in the sample contained in the cytometry data that fall within the measurement range covered by each bin. As shown in FIG. 1, bin 120a contains the number "24," indicating that the cytometry data contains 24 measurements, each corresponding to a particle in the sample that falls within the range of data values ​​associated with bin 120a (such measurement ranges are not shown in the figure).

[0066] Another representation of histogram 120 is shown in color bar 130. Color bar 130 shows a set of colors associated with corresponding histogram values, i.e., values ​​within each bin of histogram 120. Color bar 130 may be understood as a "summary" of histogram 120, where each color represents the histogram value of each bin. Color bar 130 is useful for easily summarizing the characteristics of histogram 120 in a visual form. For example, a bin with a relatively high histogram value may be assigned a relatively different color than another bin with a relatively low histogram value to visually distinguish these data.

[0067] In some cases, the cytometry data may include data from multiple different channels of multiple detection devices. In such cases, the cytometry data may include several different histograms, each corresponding to one of the multiple different channels of the multiple detection devices. For this reason, a display of a histogram according to the present invention, such as that shown in FIG. 1, needs to be scalable for displaying multiple additional histograms.

[0068] FIG. 2 illustrates a display 200 of a plurality of histograms 210 according to the present invention. Each histogram in the plurality of histograms is a color bar, similar to color bar 130 shown in FIG. 1. For example, histogram 210a is shown as a vertically oriented color bar in this case. Each color in histogram 210a corresponds to a histogram value, i.e., the value of each bin in histogram 210a. Because different histogram values ​​are assigned different colors, display 200 of histograms 210 readily presents salient features of the histogram in visual form. Display 200 shows a visual depiction of cytometry data obtained from six different detectors 215a-f. The results from each of detectors 215a-f include multiple different channels, including channel 210a belonging to detector 215a. The single histogram shown in channel 210a is similar to the single histogram shown in color bar 130 of FIG. 1. In particular, the histogram of channel 210a is divided into multiple vertical sections, or components, or bins, each corresponding to a range of measurements. That is, the histogram bins are arranged vertically in the visual representation of the histogram of channel 210a and assigned different colors to visually distinguish the characteristics of the histogram of channel 210a, particularly the histogram values ​​of each histogram bin. The vertical axis 220 of histogram 210 indicates different intensity values, such as light intensity, measured in each of the different channels of cytometry data shown in histogram 210. That is, each bin of histogram 210a corresponds to a range of light intensity measurements, such that bins closer to the top of vertical axis 220 of histogram 210a correspond to larger intensity measurements than bins closer to the bottom of vertical axis 220 of histogram 210a. While a particular orientation of light intensity and histogram 210 is shown in FIG. 2, it will be understood that different orientations of the measurement of any related parameter of cytometry data and the display of the histogram can be used in a similar manner.

[0069] 2 also shows, for example, a control unit 230 for adjusting channel gain settings in a particle analyzer used to generate the cytometry data represented by histogram 210. Adjusting channel gain settings has the effect of shifting the histogram up or down along vertical axis 220. In an embodiment, the display of histogram 210 and control unit 230 are used to adjust gain settings to find the optimum response of the detector channels without saturating any of the channels.

[0070] Histogram representation The method according to the present invention includes "generating a representation of a histogram by encoding the histogram." A "representation of a histogram" generated by encoding a histogram refers to a representation of a histogram generated by isolating salient aspects of the histogram, such as the number of bins in the histogram, the range of measurements associated with each bin of the histogram, and the number of data points corresponding to each histogram bin, and specifying such aspects of the histogram in a manner that facilitates display of the histogram using a suitable format. That is, for example, a histogram of cytometry data may be a one-dimensional array, meaning an ordered, sequential list of data elements, where each element of the array corresponds to a histogram bin and contains an integer corresponding to the number of data points associated with the range of measurements represented by the bin. In some cases, the "representation of a histogram" generated by encoding such a histogram includes encoding the histogram in a format that facilitates display of the histogram. For example, in some embodiments, the representation of a histogram is generated by encoding the histogram as an array. Such an array may have any suitable number of dimensions, such as a one-dimensional array, a two-dimensional array, a three-dimensional array, or a higher-dimensional array. Any suitable number of elements may include the number of entries in each dimension of the array. In some cases, where the vertical axis of the array representation corresponds to histogram bins, the number of elements in the histogram array representation may be 16 or more elements, 64 or more elements, 256 or more elements, or 1024 or more elements. In some cases, the array representation includes a two-dimensional array, where each element of the array corresponds to a display color, and each display color corresponds to a number that is the number of data points (i.e., measurements of particles in the sample reflected in the cytometry data) associated with the range of measurements of the histogram bin. In embodiments where the histogram representation includes an array, such as a two-dimensional array, within such a two-dimensional array, the horizontal array axis may represent different histogram bins, and the vertical array axis may be present to horizontally "stretch" the histogram to a degree significant to the display of the histogram.That is, a horizontal axis may be present so that the display of the histogram shows a histogram that is wide enough so that the display can be easily understood by a user. In such an exemplary two-dimensional array, each horizontal element is simply a duplicate of an adjacent horizontal element. In such an embodiment, replicating each color corresponding to each histogram value in the representation of the histogram a predetermined number of times may include replicating elements of the array along the horizontal axis of the array, e.g., copying the encoding of colors assigned to histogram bins in the representation of the histogram along the horizontal axis.

[0071] According to the present invention, the histogram representation is generated by assigning a color to each histogram value in the histogram representation, as described above, and then replicating each color corresponding to each histogram value in the histogram representation a predetermined number of times. "Assigning a color to each histogram value in the histogram representation" refers to converting the numbers representing histogram values ​​into display color encodings. Display color encodings refer to encodings used by a display device or a controller for a display device, e.g., a firmware device driver, to display one or more pixels of a particular color. In embodiments, assigning a color to each histogram value in the histogram representation may include assigning the display color encodings to elements of an array along the vertical axis of the histogram representation. The term "replication" in the context of replicating each color in the histogram representation is used in its conventional sense of copying. In this case, the color encodings corresponding to the histogram values ​​are replicated a predetermined number of times to horizontally "stretch" the histogram representation to reflect the width of the ultimately displayed histogram image. The color encodings in the histogram representation may be replicated any suitable or desirable number of times. For example, the predetermined number, and therefore the number of times a color encoding is replicated in the representation of the histogram, can be 1 or more, 10 or more, 20 or more, 50 or more, 100 or more, or 1,000 or more. Replicating each color corresponding to each histogram value in the representation of the histogram results in the representation of the histogram being composed of a series of "slices" or partitions, each encoding a color, where each slice or partition corresponds to a histogram value and the width of each slice corresponds to the predetermined number of times the histogram color is replicated.

[0072] In embodiments, the method may further include determining a maximum value in a histogram bin and using the maximum value to determine a scale factor for assigning colors to the histogram values. Finding a maximum value in a histogram bin means that the histogram is scanned or iterated to find the bin with the maximum value, i.e., the highest number of measurements of cytometry data associated with it. The scale factor may be determined based on the ratio of the maximum value in the histogram bin to the number of available display colors. In such embodiments, assigning colors to histogram values ​​in the histogram representation includes scaling the histogram values ​​using the scale factor to generate scaled histogram values ​​and assigning colors corresponding to the histogram values ​​based on the scaled histogram values. That is, scaling the histogram values ​​results in scaled histogram values ​​corresponding to the color coding. The number of different colors available for the histogram bins is equal to the number of scaled histogram values, and the same histogram value always corresponds to the same scaled histogram value. Scaling the histogram values ​​may take the form of shifting the binary representation of the histogram values ​​to the right by one or more bits. The method may further include obtaining a color palette containing colors available for representation of the histogram and accessing the color palette using the scaled histogram values ​​to determine the colors corresponding to the histogram values. The color palette may include a list of available display colors. For example, in some embodiments, the color palette is an array of distinct colors, and accessing the color palette using the scaled histogram values ​​includes indexing the color palette array from a base or zeroth position using the scaled histogram values. An array of distinct colors refers to a sequential list, such as a one-dimensional array or sequential list, of encodings of display colors. Indexing the color palette array refers to, for example, accessing the scaled histogram value number of an entry into the color palette.The color palette may include any suitable number of colors corresponding to the number of colors to be displayed, such as 8 or more, 32 or more, 256 or more, 1,024 or more, 16,384 or more, 65,536 or more, or 16,777,216 or more. For example, in some cases, the number of displayed colors may correspond to the number of colors a target display device is capable of displaying, or in some cases, the number of perceived colors a display device is capable of apparently displaying. That is, the number of colors, and therefore the number of color encodings, may correspond, for example, to the number of colors a monitor is capable of displaying, or the number of colors a monitor is capable of displaying with an alternative mechanism for displaying a greater variety of colors, such as by employing frame rate control techniques. In some embodiments, multiple bits may be allocated to encode each color in the histogram representation. The number of bits used to encode colors in the histogram representation may be any suitable number, such as 3 or more, 5 or more, 8 or more, 10 or more, 16 or more, 24 or more, or 32 or more.

[0073] Certain embodiments follow a specified order of operations for generating a representation of a histogram to achieve greater efficiency and speed. For example, a method consistent with the present invention achieves greater efficiency in generating a representation of a histogram by first assigning a color to each histogram value in the representation of a histogram before replicating each color corresponding to each histogram value in the representation of a histogram a predetermined number of times. Efficiency in generating a representation of a histogram and using such representation to more efficiently render a display of a histogram is useful for increasing the responsiveness of a histogram display, particularly when a large number of histograms are being displayed or when a histogram display needs to be updated rapidly or in real time. As an example of such a specified order of operations, an embodiment assigns a color to each histogram value in a representation of a histogram by assigning a display color encoding to only a single location, such as an array element, in each vertical position of the representation of a histogram, such as an array. In such an embodiment, the operation of converting a histogram value to a color encoding, such as by accessing a color palette, is performed only once per histogram bin. That is, only one "lookup" of the color corresponding to the histogram bin is required for each row of the histogram representation. In other embodiments, replicating each color corresponding to each histogram value in the histogram representation includes replicating elements of the histogram representation along the horizontal axis of the histogram representation.

[0074] As noted above, the representation of a histogram may be such that it is preferable to display the histogram based on such representation. For example, in embodiments of the invention in which the representation of a histogram is an array, each element of the array may correspond to a pixel in the final display of the histogram. That is, there may be a one-to-one correspondence between each element of the array representation of the histogram and each pixel of a display for displaying the histogram. In addition, the orientation of the array may further correspond to the orientation of the display of the histogram. For example, in embodiments of the invention in which the representation of a histogram is an array, the elements of the array along the vertical axis correspond to vertical pixels in the display of the histogram, and the elements of the array along the horizontal axis correspond to horizontal pixels in the display of the histogram.

[0075] Histogram display Methods according to the present invention include using a representation of the histogram to display the histogram. Any suitable representation of the histogram can be used. The representation of the histogram may reflect aspects or constraints of the histogram's display, such as, for example, the number of pixels allocated to the histogram in the display or the number of different colors available to display the histogram. In some embodiments, the representation of the histogram is used to display the histogram on a display device, such as, for example, a screen or monitor or liquid crystal display (LCD) or cathode ray tube or plasma screen or any other suitable output display device for displaying the histogram.

[0076] In some cases, the representation of a histogram according to the present invention corresponds to aspects of how the histogram is displayed. For example, in embodiments, the predetermined number is the number of pixels displayed horizontally in the displayed histogram. In such embodiments, when each color is replicated the predetermined number of times in the representation of the histogram, each pixel is replicated horizontally the predetermined number of times to horizontally "stretch" the display of the histogram.

[0077] In other embodiments, the displayed histogram is rectangular in shape, the vertical axis of the displayed histogram corresponds to histogram bins, and the colors within the displayed histogram correspond to histogram values, in which different colors within the displayed histogram correspond to different histogram values, as described above.

[0078] Parallel Processing The method for generating a representation of a histogram according to the present invention exhibits a high degree of parallelism. By high degree of parallelism, we mean that the method for generating a representation of a histogram according to the present invention is composed of multiple independent tasks. Because the tasks are independent, they can be performed simultaneously or in parallel, thereby overlapping the latency of achieving each individual task. That is, the method for generating a representation of a histogram according to the present invention is a highly parallelizable operation. The method for generating a representation of a histogram according to the present invention exploits this high degree of parallelism when generating the representation of the histogram to improve the efficiency of the display of the histogram. In the context of an embodiment of the method for generating a representation of a histogram according to the present invention in the context of a computer processor, such improved efficiency can involve improved performance, such as the use of fewer computing resources, such as limited computing resources in a particle analyzer, and reduced latency in generating the representation of a histogram according to the present invention (and therefore reduced latency for displaying the histogram). The reduced latency can result, for example, from implementing independent operations simultaneously or by reducing the number of long-latency operations, such as memory accesses.

[0079] As described in detail above, methods according to the present invention include assigning a color to each histogram value in the representation of the histogram. In some embodiments of the present invention, colors are assigned to multiple histogram values ​​substantially simultaneously. That is, because each bin of the histogram of cytometry data is separate and independent from each other bin, the act of assigning a color to each bin in the representation of the histogram is a parallelizable task and can therefore be performed substantially simultaneously. Such embodiments may further include using multiple parallel processing units to assign colors to multiple histogram values ​​substantially simultaneously. A parallel processing unit refers to a microprocessor capable of executing multiple instruction streams simultaneously, e.g., executing multiple execution threads simultaneously, such as a microprocessor with two or more central processing units, a multiprocessor, or a multi-core microprocessor. In such embodiments, the multiple parallel processing units may comprise a graphics processing unit. A graphics processing unit refers to any suitable graphics processor or microprocessor with a more parallel structure, such as a larger number of execution cores than a general-purpose processor, such that the graphics processing unit is configured to perform multiple operations in parallel. Target graphics processing units include graphics processing units having hundreds of processing units that operate in parallel, reside on graphics video cards, and can be programmed using an application programming interface (API), such as, for example, the WebGl API, OpenGL API, DirectX Video Acceleration (DxVA) API, Mantle, Vulcan, etc. Target graphics processing units can include commercially available graphics processing units, such as those commercially available from Nvidia, AMD, Intel, Qualcomm, or ARM. In embodiments utilizing graphics processing units, the graphics processing unit can include more than 100 processing units, each of which can be configured to substantially simultaneously assign colors to histogram values ​​in a representation of the histogram.That is, the resources of a graphics processing unit, and particularly multiple processing units, are utilized in parallel (i.e., substantially simultaneously) to assign colors to histogram values ​​in a histogram representation in accordance with the present invention. In embodiments utilizing a graphics processing unit, the graphics processing unit is located on a graphics processing card. By located on a graphics processing card, we mean that the graphics processing unit is not located on the motherboard of the computing system, but instead is located on a peripheral card that communicates with the motherboard via a bus, such as a PCI interface. A subject graphics processing card may also directly interface with a display, such as a display device comprising a monitor or screen.

[0080] In embodiments utilizing a graphics processing unit, the graphics processing unit can receive as input a one-dimensional array corresponding to a histogram. That is, the histogram of the cytometry data of a sample, from which the histogram representation is generated by encoding the histogram, can be input to the graphics processing unit in the form of a data structure including a one-dimensional array. For example, such an array can be an array of integers, each element of which corresponds to a histogram bin and is composed of histogram values. Each histogram value can represent the number of measurements in the cytometry data corresponding to a predetermined range of measurements, such as a range of measurements of light intensity in a particular channel of a photodetector. The length of the array can vary as needed based on the desired presentation of the histogram data and the number of bins in the histogram of the cytometry data. In embodiments utilizing a graphics processing unit, the graphics processing unit can output a one-dimensional array corresponding to the representation of the histogram. For example, the one-dimensional output array can be composed of an array of encoded display colors, and the graphics processing unit is used to convert different histogram values ​​to corresponding encodings of the display colors. In some embodiments utilizing a graphics processing unit, duplicating each color corresponding to each histogram value in the representation of the histogram may not be performed by the graphics processing unit. That is, in some embodiments, for each histogram value in the histogram of cytometry data, the graphics processing unit assigns one color and does not perform a lookup operation to, for example, assign a color to each histogram value more than once. This configuration is true even if the final representation of the histogram includes a horizontal dimension, such as when the horizontal dimension of the histogram representation is “stretched” to some extent to improve the readability of the histogram. As noted above, in some embodiments, duplicating each color in the representation of the histogram is not performed by the graphics processing unit, such as by not assigning a color to a single histogram value multiple times to achieve color duplication in the representation of the histogram.

[0081] Multiple Histograms As shown in FIG. 2 above, the display of multiple histograms is used, for example, when working with cytometry data that includes measurements from multiple channels of multiple detectors or otherwise has two or more different data sets, where it is desirable to analyze each data set based on its own histogram. For each of the displayed multiple histograms, an individual representation of the histogram is generated according to any of the methods for generating a histogram representation for displaying a histogram described herein. Thus, a method according to the present invention may comprise generating multiple histogram representations for displaying a histogram. Such a method may include obtaining multiple histograms of cytometry data for a sample, generating the multiple histogram representations according to any of the methods for generating a single histogram representation discussed herein, and using the multiple histogram representations to display the multiple histograms.

[0082] In embodiments of methods according to the present invention for generating a representation of a plurality of histograms, each histogram of the plurality of histograms may include light measurements of cytometry data obtained by each of a plurality of channels of one or more detectors. As described above, the cytometry data may include light measurement data, and for the plurality of histograms, each may correspond to a different channel, such as the different histograms corresponding to different detector channels shown in FIG. 2 . To more easily allow a histogram display to compare multiple histograms, such as histograms corresponding to different detector channels, in embodiments, each histogram of the plurality of histograms may include the same number of histogram bins. In other embodiments, corresponding histogram bins of each histogram of the plurality of histograms may have the same range of measurements associated therewith. When each histogram of the plurality of histograms includes the same number of histogram bins, and / or, in some cases, when each histogram bin of each of the plurality of histograms corresponds to a comparable measurement range, the display of the plurality of histograms facilitates more meaningful comparisons between different histograms of the plurality of histograms.

[0083] In an embodiment of the method according to the present invention for generating representations of a plurality of histograms for displaying the histograms, using the representations of the plurality of histograms for displaying the plurality of histograms comprises using the representations of the plurality of histograms for displaying the plurality of histograms on a display device. Any suitable display device, such as those described above, may be used to display the plurality of histograms.

[0084] In some embodiments, the representation of the multiple histograms comprises a two-dimensional array. By two-dimensional array, we mean an array of data values, in this case histogram values, where each value is associated with a column number and a row number, each corresponding to one of the two dimensions of the array. In such embodiments, a first dimension of the two-dimensional array may correspond to a histogram bin, and a second dimension of the two-dimensional array may correspond to a histogram of the multiple histograms. That is, individual histograms of the multiple histograms may be indexed along the second dimension of the two-dimensional array, and different bins of different histograms may be indexed along the first dimension of the two-dimensional array.

[0085] As noted above in the context of a single representation of a histogram of cytometry data, generating a single histogram representation exhibits a high degree of parallelism. Generating two or more histogram representations similarly exhibits a high degree of parallelism. Thus, in embodiments of methods according to the present invention for generating multiple histogram representations, the two or more histogram representations are generated substantially simultaneously. By substantially simultaneously, we mean that the latency of a single operation generating a single histogram representation overlaps with the latency of generating one or more other representations of the histogram.

[0086] Measurement channel saturation display Some embodiments of the method according to the present invention further include determining whether a detector channel is saturated. A detector channel refers to a channel of a detector, such as the detectors described herein, used to collect measurements from illuminated particles in a sample. In embodiments, when a detector channel is saturated, the detector channel can no longer significantly distinguish between different measurements. In some cases, detector channel saturation is indicated by a significant number of measurements falling outside the established range of expected measurements of a histogram. For example, the range of measurements (e.g., measurements of light, such as fluorescence, from illuminated particles flowing in a flow stream) for a histogram bin may be established using measurements corresponding to detector channels known to be unsaturated. Other means can also be used to establish a histogram measurement range. A detector channel may be saturated if further use of the detector channel results in subsequent measurements of particles of the sample falling outside the established measurement range. In some cases, measurements falling outside the established histogram range may indicate that the measurements exceed the maximum distinguishable measurement of the detector channel, or in other cases, may indicate that the measurements do not rise to the level of the minimum distinguishable measurement of the detector channel. Adjustments to detector channel gain settings, such as increasing or decreasing the gain, can sometimes resolve saturation.

[0087] In embodiments, determining whether a detector channel is saturated includes determining whether the detector channel's percentage of oversaturation is greater than a predetermined threshold. "Percentage of oversaturation" refers to the ratio of the number of all particle measurements outside the established range of a histogram bin to the total number of all particle measurements. That is, qualitatively, in some cases, "percentage of oversaturation" refers to the percentage of measurements in the cytometry data that are outside the established range of the channel detector. In such cases, measurements that are outside the established range cannot be displayed on a histogram reflecting the standard range of histogram bins for the detector channel. In some cases, the percentage of oversaturation reflects the degree of saturation, with a higher percentage indicating a greater degree of saturation. The predetermined threshold for saturation may be any suitable percentage, such as 1% or more, 2% or more, 5% or more, 10% or more, 25% or more, 50% or more, or 75% or more. In some cases, the predetermined threshold may be configured to be the same for each individual histogram or each sample, such as a default value. In other cases, the predetermined threshold may be different for each individual histogram or each sample.

[0088] Certain embodiments of methods according to the present invention further include displaying a saturation user interface corresponding to the saturated detector channel. That is, the histogram display may be highlighted or additional text or an icon may be displayed to notify the user that the detector channel corresponding to the histogram is saturated. In some cases, the saturation user interface further includes displaying the percentage of oversaturation for the detector channel and the corresponding histogram, e.g., additional text in the display identifying the detector channel and the percentage of oversaturation. In other cases, the histogram corresponding to the saturated detector channel is enlarged (i.e., the size of the display is increased) compared to the display of the histogram corresponding to the non-saturated detector channel. The saturation user interface may be displayed as soon as the detector channel is determined to be saturated. In some embodiments, the saturation user interface comprises a prompt with instructions to adjust the setting of the saturated detector channel, such as, for example, a prompt with instructions to adjust the detector channel gain setting downward by 5%.

[0089] In embodiments in which multiple histograms are displayed, the display of the multiple histograms may further include displaying a saturation user interface corresponding to the saturated detector channel. That is, the histogram corresponding to the saturated detector channel may be emphasized in the display of the multiple histograms by, for example, increasing the relative size of the display of the histogram corresponding to the saturated detector channel, displaying an icon on or near the histogram, highlighting the display of the histogram, displaying a border around the histogram, blinking the display, or changing the display to emphasize the histogram corresponding to the saturated detector channel. The saturation user interface may include text indicating which detector channels are saturated and instructing the user to adjust the corresponding settings. In some embodiments, the saturation user interface includes displaying the percentage of oversaturation of the saturated detector channel. In other embodiments, the saturation user interface includes a prompt for adjusting the setting of the saturated detector channel. For example, the saturation user interface may include a prompt with instructions to adjust the gain setting of the saturated detector channel downward by 5%, or the like.

[0090] Real-time processing and use of the display to adjust settings In embodiments of methods according to the invention, generating the representation of the histogram, or generating the representation of each histogram of the plurality of histograms, as the case may be, is performed substantially in real time, meaning that methods according to the invention may be configured to generate the representations according to particular time constraints, including time constraints that are short enough so that the display of the histogram can be updated or otherwise continually re-displayed with updated or new histograms of cytometry data.

[0091] In other embodiments of the method according to the present invention, the method may optionally further include adjusting settings for collecting the cytometry data based on the display of one or more histograms. Adjusting the settings for collecting the cytometry data may include, for example, adjusting settings of a particle analyzer or flow-based particle detection system used to collect the cytometry data. In some cases, adjusting the settings includes adjusting gain settings of one or more channels of a detector for collecting the cytometry data. In such cases, adjusting gain settings of a channel of a detector for collecting the cytometry data may include preventing saturation of the detector channel. Saturation of a channel or detector, in some cases, means that a channel or detector records a significant number of its measurements at or near the maximum measurement range of the channel or detector, such that the channel or detector is unable to meaningfully distinguish between different measurements when saturated.

[0092] System for processing and displaying multi-channel spectral histograms As summarized above, aspects of the present disclosure include systems configured to process and display multi-channel spectral histograms, such as histograms of cytometry data including measurements from particles of a sample. In particular, the present disclosure includes systems configured to generate a histogram representation for displaying the histogram. As noted above, the term histogram representation refers to an encoding of histogram data that can be used to display the histogram data. In particular, the histogram representation refers to a representation that can be efficiently generated to be used to display multiple histograms while minimizing the processing and display time and memory and processing resources required, such that the display of one or more histograms can be updated substantially in real time. A system according to certain embodiments includes a general-purpose processor having an operably coupled memory having instructions stored thereon that, when executed by the general-purpose processor, cause the general-purpose processor to: obtain a histogram of cytometry data for a sample, the histogram including measurements from illuminated particles in the sample flowing in a flow stream; transmit the histogram to a plurality of parallel processing units; receive a representation of the histogram from the plurality of parallel processing units, the representation including a color encoding corresponding to each histogram value; replicate the color encoding corresponding to the histogram values ​​in the representation of the histogram a predetermined number of times; and display the histogram on an output device. and a plurality of parallel processing units having a memory operatively connected to the general-purpose processor, the memory having instructions stored therein that, when executed by the plurality of parallel processing units, cause the plurality of parallel processing units to: receive a histogram from the general-purpose processor; generate a representation of the histogram by encoding the histogram, where the encoding includes assigning a color coding to each histogram value in the representation of the histogram; and send the representation of the histogram to the general-purpose processor.Histograms of cytometry data for a sample are described above. Systems and devices for use in collecting measurements that include cytometry data are discussed below.

[0093] light source In embodiments, for cytometry data, particles in a sample flowing within a flow stream can be illuminated using a light source. The light source can be any suitable broadband or narrowband light source. Depending on the components within the sample (e.g., cells, beads, non-cellular particles, etc.), the light source can be configured to emit wavelengths of light that vary over a range of 200 nm to 1500 nm, including, for example, 250 nm to 1250 nm, e.g., 300 nm to 1000 nm, e.g., 350 nm to 900 nm, and 400 nm to 800 nm. For example, the light source can include a broadband light source that emits light having a wavelength of 200 nm to 900 nm. In other cases, the light source includes a narrowband light source that emits wavelengths over a range of 200 nm to 900 nm. For example, the light source can be a narrowband LED (1 nm to 25 nm) that emits light having a wavelength over a range of 200 nm to 900 nm. In certain embodiments, the light source is a laser. In some examples, the subject systems include gas lasers such as helium-neon lasers, argon lasers, krypton lasers, xenon lasers, nitrogen lasers, CO2 lasers, CO2 lasers, argon fluorine (ArF) excimer lasers, krypton fluorine (KrF) excimer lasers, xenon chlorine (XeCl) excimer lasers, or xenon fluorine (XeF) excimer lasers, or combinations thereof. In other cases, the subject systems include dye lasers such as stilbene lasers, coumarin lasers, or rhodamine lasers. In still other examples, lasers of interest include metal vapor lasers such as helium-cadmium (HeCd) lasers, helium-mercury (HeHg) lasers, helium-selenium (HeSe) lasers, helium-silver (HeAg) lasers, strontium lasers, neon-copper (NeCu) lasers, copper lasers, or gold lasers, and combinations thereof.In still other instances, the subject systems include solid-state lasers such as ruby ​​lasers, Nd:YAG lasers, NdCrYAG lasers, Er:YAG lasers, Nd:YLF lasers, Nd:YVO4 lasers, Nd:YCa4O(BO3)3 lasers, Nd:YCOB lasers, titanium sapphire lasers, slim YAG lasers, ytterbium YAG lasers, Yb2O3 lasers, or cerium-doped lasers, and combinations thereof.

[0094] In other cases, the light source is a non-laser light source that is a light emitting diode such as a broadband LED with a continuous spectrum, a high brightness light emitting diode, a semiconductor light emitting diode, a wide spectrum LED white light source, a multi-LED integrated light source, etc. In some cases, the non-laser light source is a stabilized fiber coupled broadband light source, a white light source, or any combination thereof, among other light sources.

[0095] The light source can be positioned at any suitable distance from the sample flowing in the flow stream (e.g., a flow stream in a flow cytometer), such as at a distance of 0.001 mm or more from the flow stream, including at a distance of 0.005 mm or more, such as 0.01 mm or more, such as 0.05 mm or more, such as 0.1 mm or more, such as 0.5 mm or more, such as 1 mm or more, such as 5 mm or more, such as 10 mm or more, such as 25 mm or more, and 100 mm or more. Additionally, the light source can illuminate the sample at any suitable angle (e.g., relative to the normal axis of the flow stream), such as at an angle ranging from 10° to 90°, e.g., a 90° angle, including 15° to 85°, e.g., 20° to 80°, e.g., 25° to 75°, and 30° to 60°.

[0096] The light source can be configured to illuminate the sample continuously or at discrete intervals. In some cases, the system includes a light source configured to continuously illuminate the sample, such as with a continuous wave laser that continuously illuminates the flow stream at the interrogation point of the flow cytometer. In other cases, the corresponding system may illuminate the sample using a light source configured to illuminate the sample at discrete intervals, such as every 0.001 milliseconds, every 0.01 milliseconds, every 0.1 milliseconds, every 1 milliseconds, every 10 milliseconds, every 100 milliseconds, and every 1000 milliseconds, or some other interval. When the light source is configured to illuminate the sample at discrete intervals, the system may include one or more additional components to provide intermittent illumination of the sample with the light source. For example, the subject systems in these embodiments may include one or more laser beam choppers, which are manual or computer-controlled beam stops, for blocking and exposing the sample to the light source.

[0097] In some cases, the light source is a laser. The laser of interest can include pulsed lasers or continuous wave lasers. For example, the laser can be a gas laser such as a helium-neon laser, an argon laser, a krypton laser, a xenon laser, a nitrogen laser, a CO2 laser, a CO2 laser, an argon fluorine (ArF) excimer laser, a krypton fluorine (KrF) excimer laser, a xenon chlorine (XeCl) excimer laser, or a xenon fluorine (XeF) excimer laser, or a combination thereof; a dye laser such as a stilbene, coumarin, or rhodamine laser; a helium-cadmium (HeCd) laser, a helium-mercury (HeHg) laser, a helium-selenium (HeSe) laser, a helium-silver (HeAg) laser, a strontium laser, metal vapor lasers such as neon-copper (NeCu) lasers, copper lasers, or gold lasers, and combinations thereof; ruby ​​lasers, Nd:YAG lasers, NdCrYAG lasers, Er:YAG lasers, Nd:YLF lasers, Nd:YVO4 lasers, Nd:YCa4O(BO3)3 lasers, Nd:YCOB lasers, titanium sapphire lasers, thulium YAG lasers, ytterbium YAG lasers, Yb2O3 lasers, or cerium-doped lasers, and combinations thereof; semiconductor diode lasers, optically pumped semiconductor lasers (OPSLs), or frequency-doubled or frequency-tripled embodiments of any of the above lasers.

[0098] In certain cases, the light source is an optical beam generator configured to generate two or more beams of frequency-shifted light. In some cases, the optical beam generator includes a laser, a radio frequency generator configured to apply a radio frequency drive signal to an acousto-optic device to generate two or more angularly polarized laser beams. In these embodiments, the laser may be a pulsed laser or a continuous wave laser, as described above.

[0099] The acousto-optic device can be any convenient acousto-optic device configured to frequency-shift laser light using an applied acoustic wave. In certain embodiments, the acousto-optic device is an acousto-optic deflector. The acousto-optic device in the subject systems is configured to generate an angularly deflected laser beam from light from a laser and an applied high-frequency drive signal. This high-frequency drive signal can be applied to the acousto-optic device by any suitable high-frequency drive signal source, such as a direct digital synthesizer (DDS), an arbitrary waveform generator (AWG), or an electrical pulse generator.

[0100] In some cases, the controller is configured to apply high frequency drive signals to the acousto-optic device to generate a desired number of angularly deflected laser beams within the output laser beam, e.g., the controller is configured to apply three or more high frequency drive signals, for example, four or more high frequency drive signals, for example, five or more high frequency drive signals, for example, six or more high frequency drive signals, for example, seven or more high frequency drive signals, for example, eight or more high frequency drive signals, for example, nine or more high frequency drive signals, for example, ten or more high frequency drive signals, for example, fifteen or more high frequency drive signals, for example, twenty-five or more high frequency drive signals, for example, fifty or more high frequency drive signals, including being configured to apply one hundred or more high frequency drive signals.

[0101] In some cases, the controller is configured to apply a high frequency drive signal having an amplitude that varies from, for example, about 0.001V to about 500V, for example, about 0.005V to about 400V, for example, about 0.01V to about 300V, for example, about 0.05V to about 200V, for example, about 0.1V to about 100V, for example, about 0.5V to about 75V, for example, about 1V to 50V, for example, about 2V to 40V, for example, 3V to about 30V, and about 5V to about 25V, to generate an angularly deflected laser beam intensity profile within the output laser beam. In some embodiments, each applied high frequency drive signal has a frequency of about 0.001 MHz to about 500 MHz, for example, from about 0.005 MHz to about 400 MHz, for example, from about 0.01 MHz to about 300 MHz, for example, from about 0.05 MHz to about 200 MHz, for example, from about 0.1 MHz to about 100 MHz, for example, from about 0.5 MHz to about 90 MHz, for example, from about 1 MHz to about 75 MHz, for example, from about 2 MHz to about 70 MHz, for example, from about 3 MHz to about 65 MHz, for example, from about 4 MHz to about 60 MHz, and from about 5 MHz to about 50 MHz.

[0102] In certain embodiments, the controller includes a processor having an operably coupled memory, the memory including instructions stored thereon that, when executed by the processor, cause the processor to generate an output laser beam having an angularly deflected laser beam with a desired intensity profile. For example, the memory may include instructions for generating two or more angularly deflected laser beams having the same intensity, e.g., three or more, e.g., four or more, e.g., five or more, e.g., ten or more, e.g., twenty-five or more, e.g., fifty or more, or may include memory that may include instructions for generating one hundred or more angularly deflected laser beams having the same intensity. In other embodiments, the memory may include instructions for generating two or more angularly deflected laser beams having different intensities, e.g., three or more, e.g., four or more, e.g., five or more, e.g., ten or more, e.g., twenty-five or more, e.g., fifty or more, or may include memory that may include instructions for generating one hundred or more angularly deflected laser beams having different intensities.

[0103] In certain cases, the controller includes a processor having operably coupled memory, the memory including instructions stored thereon that, when executed by the processor, cause the processor to generate an output laser beam that increases in intensity from the edge of the output laser beam to its center along a horizontal axis. In these cases, the intensity of the angularly deflected laser beam at the center of the output beam can range from 0.1% to about 99% of the intensity of the angularly deflected laser beam at the edge of the output laser beam along the horizontal axis, such as from 0.5% to about 95%, such as from 1% to about 90%, such as from about 2% to about 85%, such as from about 3% to about 80%, such as from about 4% to about 75%, such as from about 5% to about 70%, such as from about 6% to about 65%, such as from about 7% to about 60%, such as from about 8% to about 55%, and including from about 10% to about 50% of the intensity of the angularly deflected laser beam at the edge of the output laser beam along the horizontal axis. In other cases, the controller includes a processor having a memory operatively coupled to the processor, the memory including instructions stored thereon that, when executed by the processor, cause the processor to generate an output laser beam that increases in intensity from the edge of the output laser beam to its center along a horizontal axis. In these cases, the intensity of the angularly deflected laser beam at the edge of the output beam can range from 0.1% to about 99% of the intensity of the angularly deflected laser beam at the center of the output laser beam along the horizontal axis, such as from 0.5% to about 95%, such as from 1% to about 90%, such as from about 2% to about 85%, such as from about 3% to about 80%, such as from about 4% to about 75%, such as from about 5% to about 70%, such as from about 6% to about 65%, such as from about 7% to about 60%, such as from about 8% to about 55%, and including from about 10% to about 50% of the intensity of the angularly deflected laser beam at the center of the output laser beam along the horizontal axis. In yet other cases, the controller includes a processor having a memory operably coupled thereto, the memory including instructions stored thereon that, when executed by the processor, cause the processor to generate an output laser beam having an intensity profile with a Gaussian distribution along a horizontal axis.In yet other cases, the controller includes a processor having a memory operably coupled thereto, the memory including instructions stored thereon that, when executed by the processor, cause the processor to generate an output laser beam having a top-hat shaped intensity profile along a horizontal axis.

[0104] In some cases, the subject optical beam generator can be configured to generate angularly polarized laser beams within the output laser beam that are spatially separated. Depending on the applied high frequency drive signal and the desired illumination profile of the output laser beam, the angularly polarized laser beams can be separated by 0.001 μm or more, e.g., by 0.005 μm or more, e.g., by 0.01 μm or more, e.g., by 0.05 μm or more, e.g., by 0.1 μm or more, e.g., by 0.5 μm or more, e.g., by 1 μm or more, e.g., by 5 μm or more, e.g., by 10 μm or more, e.g., by 100 μm or more, e.g., by 500 μm or more, e.g., by 1000 μm or more, and by 5000 μm or more. In some cases, the system is configured to generate angularly polarized laser beams within the output laser beam that partially overlap with adjacent angularly polarized laser beams, e.g., along the horizontal axis of the output laser beam. The overlap between adjacent angularly deflected laser beams (e.g., beam spot overlap) can be, for example, an overlap of 0.005 μm or more, for example, an overlap of 0.01 μm or more, for example, an overlap of 0.05 μm or more, for example, an overlap of 0.1 μm or more, for example, an overlap of 0.5 μm or more, for example, an overlap of 1 μm or more, for example, an overlap of 5 μm or more, for example, an overlap of 10 μm or more, and an overlap of 100 μm or more.

[0105] In certain instances, optical beam generators configured to generate two or more beams of frequency-shifted light are disclosed in U.S. Patent Nos. 9,423,353, 9,784,661, 9,983,132, 10,006,852, 10,078,045, 10,036,699, 10,222,316, 10,288,546, 10,324,019, and 10,408,758. , 10,451,538, 10,620,111, and U.S. Patent Application Publication Nos. 2017 / 0133857, 2017 / 0328826, 2017 / 0350803, 2018 / 0275042, 2019 / 0376895, and 2019 / 0376894, the disclosures of which are incorporated herein by reference.

[0106] detector In embodiments, cytometry data may consist of measurements of light detected from illuminated particles in a sample flowing in a flow stream. A light detection system may be used to measure such light from particles in the sample. The light detection system may have one or more light detectors. Light detectors of interest may include, but are not limited to, optical sensors such as active pixel sensors (APS), avalanche photodiodes, image sensors, charge-coupled devices (CCDs), intensified charge-coupled devices (ICCDs), light-emitting diodes, photon counters, bolometers, pyroelectric detectors, photoresistors, photocells, photodiodes, photomultiplier tubes, phototransistors, quantum dot photoconductors or photodiodes, and combinations thereof, among other photodetectors. In certain embodiments, light from the sample is measured with a charge-coupled device (CCD), a semiconductor charge-coupled device (CCD), an active pixel sensor (APS), a complementary metal-oxide semiconductor (CMOS) image sensor, or an N-type metal-oxide semiconductor (NMOS) image sensor.

[0107] In some cases, a subject light detection system includes multiple light detectors. In some cases, the light detection system includes multiple solid-state detectors, such as photodiodes. In certain cases, the light detection system includes a light detector array, such as a photodiode array. In these embodiments, the light detector array can include four or more light detectors, e.g., 10 or more light detectors, e.g., 25 or more light detectors, e.g., 50 or more light detectors, e.g., 100 or more light detectors, e.g., 250 or more light detectors, e.g., 500 or more light detectors, e.g., 750 or more light detectors, and 1000 or more light detectors. For example, the detector can be a photodiode array having four or more photodiodes, e.g., 10 or more photodiodes, e.g., 25 or more photodiodes, e.g., 50 or more photodiodes, e.g., 100 or more photodiodes, e.g., 250 or more photodiodes, e.g., 500 or more photodiodes, e.g., 750 or more photodiodes, and 1000 or more photodiodes.

[0108] The photodetectors can be arranged in any geometric configuration as desired, including, but not limited to, square, rectangular, trapezoidal, triangular, hexagonal, heptagonal, octagonal, nonagonal, decagonal, dodecagonal, circular, oval, and irregularly patterned configurations. The photodetectors within the photodetector array can be oriented at angles ranging from 10° to 180° relative to another plane (as referenced to the XZ plane), including, for example, 15° to 170°, for example, 20° to 160°, for example, 25° to 150°, for example, 30° to 120°, and 45° to 90°. The photodetector array can be any suitable shape, including rectilinear shapes such as square, rectangular, trapezoidal, triangular, and hexagonal, curvilinear shapes such as circular and oval, and irregular shapes such as a parabolic base joined to a planar top. In a particular case, the photodetector array has an active surface that is rectangular in shape.

[0109] Each photodetector (e.g., photodiode) in the array may have a width ranging from 5 μm to 250 μm, for example, from 10 μm to 225 μm, for example, from 15 μm to 200 μm, for example, from 20 μm to 175 μm, for example, from 25 μm to 150 μm, for example, from 30 μm to 125 μm, and from 50 μm to 100 μm, and a length ranging from 5 μm to 250 μm, for example, from 10 μm to 225 μm, for example, from 15 μm to 200 μm, for example, from 20 μm to 175 μm, for example The array may have an active surface having an area of ​​25 μm to 150 μm, for example, 30 μm to 125 μm, and 50 μm to 100 μm, where the surface area of ​​each photodetector (e.g., photodiode) in the array ranges from 25 μm to 10,000 μm, for example, 50 μm to 9,000 μm, for example, 75 μm to 8,000 μm, for example, 100 μm to 7,000 μm, for example, 150 μm to 6,000 μm, and 200 μm to 5,000 μm.

[0110] The size of the photodetector array can vary depending on the amount and intensity of light, the number of photodetectors, and the desired sensitivity, and its length can range from 0.01 mm to 100 mm, for example, 0.05 mm to 90 mm, for example, 0.1 mm to 80 mm, for example, 0.5 mm to 70 mm, for example, 1 mm to 60 mm, for example, 2 mm to 50 mm, for example, 3 mm to 40 mm, for example, 4 mm to 30 mm, and 5 mm to 25 mm. The width of the photodetector array can also range from 0.01 mm to 100 mm, for example, 0.05 mm to 90 mm, for example, 0.1 mm to 80 mm, for example, 0.5 mm to 70 mm, for example, 1 mm to 60 mm, for example, 2 mm to 50 mm, for example, 3 mm to 40 mm, for example, 4 mm to 30 mm, and 5 mm to 25 mm. Thus, the active surface of the photodetector array may range from 0.1 mm 2 to 10000 mm 2 , such as from 0.5 mm 2 to 5000 mm 2 , such as from 1 mm 2 to 1000 mm 2 , such as from 5 mm 2 to 500 mm 2 , and from 10 mm 2 to 100 mm 2 .

[0111] The subject photodetectors are configured to measure collected light at one or more wavelengths, e.g., at two or more wavelengths, e.g., at five or more different wavelengths, e.g., at ten or more different wavelengths, e.g., at twenty-five or more different wavelengths, e.g., at fifty or more different wavelengths, e.g., at one hundred or more different wavelengths, e.g., at two hundred or more different wavelengths, e.g., at three hundred or more different wavelengths, including measuring light emitted by a sample in the flow stream at four hundred or more different wavelengths.

[0112] In some embodiments, the photodetector is configured to measure collected light over a range of wavelengths (e.g., 200 nm to 1000 nm). In certain embodiments, the photodetector of interest is configured to collect a spectrum of light over a range of wavelengths. For example, the system may include one or more detectors configured to collect a spectrum of light over one or more wavelength ranges from 200 nm to 1000 nm. In still other embodiments, the detector of interest is configured to measure light from a sample in the flowstream at one or more specific wavelengths. For example, the system may include one or more detectors configured to measure light at one or more of the following wavelengths: 450 nm, 518 nm, 519 nm, 561 nm, 578 nm, 605 nm, 607 nm, 625 nm, 650 nm, 660 nm, 667 nm, 670 nm, 668 nm, 695 nm, 710 nm, 723 nm, 780 nm, 785 nm, 647 nm, 617 nm, and any combination thereof. In certain embodiments, the photodetector may be configured to pair with a particular fluorophore, such as one used with the sample in a fluorescence analysis, hi some embodiments, the photodetector is configured to measure the collected light across the fluorescence spectrum of each fluorophore in the sample.

[0113] The light detection system may be configured to measure light continuously or at discrete intervals. In some cases, the target light detector is configured to make measurements of collected light continuously. In other cases, the light detection system is configured to make measurements within discrete intervals, such as measuring light every 0.001 milliseconds, every 0.01 milliseconds, every 0.1 milliseconds, every 1 millisecond, every 10 milliseconds, every 100 milliseconds, every 1000 milliseconds, or some other interval.

[0114] Processor and memory configuration A system according to the present disclosure includes a processor having an operably coupled memory, the memory containing instructions that, when executed by the processor, cause the processor to: obtain a histogram of cytometry data of a sample including measurements from illuminated particles in the sample flowing in a flow stream; transmit the histogram to a plurality of parallel processing units; receive a representation of the histogram from the plurality of parallel processing units, the representation including a color encoding corresponding to each histogram value; replicate the color encoding corresponding to the histogram values ​​in the representation of the histogram a predetermined number of times; and use the representation of the histogram to display the histogram on an output device.

[0115] In some cases, the histogram of cytometry data can be acquired by the general-purpose processor by any suitable input technique, such as via a wired or wireless network connection, shared memory, a bus or similar communication protocol with the source of the cytometry data, such as an Ethernet connection or Universal Serial Bus (USB) connection, a portable memory device, etc. The general-purpose processor may be configured to preprocess the histogram of cytometry data so that the histogram of cytometry data is placed in memory in a form suitable for subsequent processing, such as processing by a parallel processing unit. Such a configuration may be any suitable configuration capable of optimizing further processing by the parallel processing unit, such as, for example, a contiguous array of memories, such as a contiguous list of memories, with each histogram bin accessed by an offset from a base memory address corresponding to the start or zeroth position of the array. Sending the histogram to multiple parallel processing units refers to any suitable means of initiating further processing of the histogram of cytometry data by multiple parallel processing units. Such transmission may consist of a function call from the general-purpose processor to the multiple parallel processing units communicating a location in memory corresponding to the histogram, such as the base address in memory of the histogram, with such function having the effect of initiating further processing by the multiple parallel processing units. By general-purpose processor is meant any suitable processor optimized for general-purpose workloads. Such a processor may consist of multiple cores or multiple processors, but is typically expected to include fewer such cores than the multiple parallel processing units according to the present invention.

[0116] Similarly, receiving a representation of the histogram from the multiple parallel processing units refers to any suitable means for signaling that the multiple parallel processing units have completed generating a representation of the histogram, which comprises encoding a set of display colors corresponding to each histogram value. As described in detail above, generating an encoding of histogram values ​​of a histogram of cytometry data is a highly parallel task and is therefore performed on parallel processing units to reduce overall latency and memory usage requirements. Multiple parallel processing units refer to, for example, a graphics processor or similar processor optimized to simultaneously execute multiple parallel operations, such as a multi-core processor, or even a set of processors integrated with memory to facilitate longer latency memory operations. As mentioned above, any suitable graphics processor can be used, such as commercially available graphics processors available from Nvidia, AMD, Intel, Qualcomm, or ARM. Receiving a representation of the histogram from the multiple parallel processing units can take the form of a function call to send the representation of the histogram to a processor, for example, by sending the base address of the representation of the histogram to the processor for further processing by the processor. By generating a representation of a histogram by encoding the histogram, which includes assigning a color encoding to each histogram value in the representation of the histogram, it is meant creating a representation in memory of the representation of the histogram of cytometry data that is comprised of display color encodings, each of which corresponds to a histogram value. Any suitable technique can be used to generate such a representation, such as, for example, scaling each histogram value based on the maximum histogram value in the histogram and the number of available display colors, and using such scaled values ​​to access a look-up table comprised of the available display color encodings.

[0117] Replicating the color encoding corresponding to the histogram values ​​in the representation of the histogram a predetermined number of times means copying the color encoding in the representation of the histogram a predetermined number of times, typically corresponding to the number of pixels in the width of the display of the histogram. Such copying operations may be performed using any suitable technique that minimizes longer latency operations, such as memory accesses. That is, such copying may be performed by loading the values ​​to be copied from memory once and using the values ​​obtained from that single load instruction to replicate the colors in the representation of the histogram a predetermined number of times. Replicating the color encoding may be performed such that the resulting representation of the histogram is in a form suitable for use in displaying the histogram. For example, the representation of the histogram may be located contiguously in memory so that it can be easily transmitted to a display device or otherwise used to display the histogram.

[0118] Using a representation of a histogram to display a histogram on an output device means any suitable method of transmitting a representation of the histogram consisting of a color encoding of the histogram values ​​replicated a predetermined number of times, corresponding to "stretching" the histogram so that its width is the desired size for viewing a display of the histogram. Using a representation to display a histogram means that a function call can be made by a general-purpose processor to an output device indicating that the output device should begin displaying the histogram, and transmitting the location in memory of the representation of the histogram.

[0119] In embodiments of the system according to the present disclosure, the cytometry data includes light measurements from illuminated particles in the sample. In such embodiments of the system, the light measurements can be measurements of light intensity. In embodiments of the system, the cytometry data includes measurements of one or more of excitation light scattered by the particles primarily along a forward direction, excitation light scattered by the particles primarily along a lateral direction, and light emitted from fluorescent molecules or fluorescent dyes used to label the particles in one or more frequency ranges.

[0120] In embodiments of the system according to the present disclosure, the histogram includes a plurality of bins, and histogram values ​​are associated with the histogram bins. In such embodiments of the system, each histogram bin may correspond to a range of measurements from illuminated particles in the sample. In such embodiments, the measurements may be measurements of light intensity and / or the histogram may be a spectral intensity histogram.

[0121] The system according to the present disclosure may further include a display device operatively connected to the general-purpose processor, and using the representation of the histogram to display the histogram on an output device includes using the representation of the histogram to display the histogram on the display device. A display device refers to any suitable device for outputting an image of a histogram, such as a monitor, a liquid crystal display screen, a light-emitting diode display, a plasma display, a cathode ray tube, an electroluminescent display, a touch screen, etc. The display device may be integrated with the general-purpose processor via a wired or wireless connection, for example, via a USB or Bluetooth connection. Operation of the display device may be under the control of software running on the general-purpose processor. The display device may comprise a controller for controlling the display device that can communicate with the general-purpose processor, for example, via a shared memory address. In some embodiments of the system, the predetermined number is the number of pixels displayed horizontally in the displayed histogram. That is, the representation of the histogram is composed of each color replicated a predetermined number of times, and the predetermined number corresponds to the width, in pixels, of the representation of the histogram. In such cases, the representation of the histogram can closely correspond to the display of the histogram, such that the display of the histogram is optimized to reduce display latency. In embodiments of the system, the shape of the displayed histogram may be rectangular, the vertical axis of the displayed histogram corresponds to histogram bins, and the colors within the displayed histogram correspond to histogram values. In such embodiments, different colors within the displayed histogram may correspond to different histogram values. That is, different colors can be used to cue a viewer of the histogram to the values ​​or relative values ​​of the histogram bins, thereby facilitating understanding and analysis of the underlying cytometry data.

[0122] In embodiments of the system, the representation of the histogram includes an array. By array, for example, is meant a contiguous list of memory locations where array elements, i.e., histogram bins, can be accessed by offset from the base of the array, i.e., the zeroth position of the array. In such embodiments of the system, assigning a color encoding to each histogram value in the representation of the histogram can include assigning a display color encoding to elements of the array along the vertical axis of the array. In such embodiments of the system, assigning a color encoding to each histogram value in the representation of the histogram can include assigning a display color encoding to a single or fewer array elements at each vertical position of the array. That is, generation of the representation of the histogram in accordance with the present invention can be optimized so that the relatively expensive operation of encoding the color of the histogram value is performed only once for each histogram bin, even though the final representation of the histogram includes a width greater than a single pixel. In some cases, the vertical axis of the array is 256 entries, meaning that the histogram, as well as the representation of the histogram, includes sufficient space for 256 histogram bins. In other cases, replicating each encoding of a color corresponding to a histogram value in a representation of the histogram involves replicating the elements of the array along the horizontal axis of the array, i.e., the horizontal axis of the array may correspond to the "width" of the array in the histogram representation, such that each horizontal position is a different histogram bin.

[0123] In embodiments of the system, each element of the array corresponds to an output device pixel in a representation of the histogram. In some embodiments of the system, elements of the array along the vertical axis correspond to output device pixels of the vertical axis in a representation of the histogram.

[0124] In embodiments of the system according to the present invention, the general-purpose processor is further configured to determine a maximum value in a bin of the histogram and use the maximum value to determine a scale factor for assigning a color to the histogram value. In such embodiments of the system, assigning color encodings to histogram values ​​in the representation of the histogram includes scaling the histogram values ​​using the scale factor to generate scaled histogram values ​​and assigning colors corresponding to the histogram values ​​based on the scaled histogram values. Furthermore, in such embodiments of the system, the general-purpose processor may be configured to obtain a color palette containing available colors for the histogram representation and access the color palette using the scaled histogram values ​​to determine the colors corresponding to the histogram values. Using the scaled histogram values ​​may, in some cases, mean that the general-purpose processor sends or otherwise communicates information about the scaled histogram values, such as the scale factors, to multiple parallel processing units, such that the parallel processing units use the scale factors and information about the available colors to encode display colors associated with the histogram values, such as by lookup. In such cases, the color palette may be an array of different colors, and using the scaled histogram values ​​to access the color palette may include using the scaled histogram values ​​to index into the color palette array. In some cases, the color palette includes 256 colors. That is, there may be a total of 256 different display colors for encoding the different histogram values. In such cases, 8 bits may be used to represent each color in the histogram representation, since 256 different display colors can be represented with 8 bits.

[0125] In embodiments of a system according to the present invention, the multiple parallel processing units may be further configured to substantially simultaneously assign color encodings to multiple histogram values ​​in the representation of the histogram. By substantially simultaneously, we mean that two or more of the parallel processing units may assign color encodings to different histogram values ​​at overlapping times, such that the parallel processing units may operate substantially independently to assign colors such that the latency of assigning a particular color for a particular histogram value overlaps with the latency of assigning other colors to other histogram values. In some embodiments of the system, the multiple parallel processing units comprise graphics processing units, which means any microprocessor configured for use in performing graphics operations, such as those commercially described herein. In some cases, the graphics processing unit comprises more than 100 processing units, each configured to substantially simultaneously assign color encodings to histogram values ​​in the representation of the histogram. In such embodiments, the graphics processing units may be located on a graphics processing card. By located on a graphics processing card, we mean that the graphics processing unit is on a different card or circuit board than the general-purpose processor. In other words, the graphics processing unit may be located on a board other than a motherboard.

[0126] In system embodiments, in connection with transmitting the histogram data to the graphics processing unit, the graphics processing unit may receive as input a one-dimensional array corresponding to the histogram. In some embodiments, the graphics processing unit transmits as output a one-dimensional array corresponding to a representation of the histogram. In system embodiments, the system may be configured to generate a representation of the histogram for displaying the histogram in substantially real time. Real time means that the system is configured to generate the representation under time constraints and the system latency for performing such generation is within a specified time range.

[0127] In other embodiments of the system according to the present invention, the system is configured to determine whether a detector channel is saturated. In some cases, the system is configured to determine whether a detector channel is saturated by determining whether a percentage of oversaturation of the detector channel is greater than a predetermined threshold, where the percentage of oversaturation of the detector channel comprises the ratio of the number of particle measurements outside established histogram bins to the total number of particle measurements. "Percentage of oversaturation" refers to the ratio of the number of all particle measurements outside the established range of histogram bins to the total number of all particle measurements. The predetermined threshold may be any suitable percentage, such as 1% or more, 2% or more, 5% or more, 10% or more, 25% or more, 50% or more, or 75% or more. In other cases, the system is further configured to cause the display of a saturation user interface corresponding to the saturated detector channel, where the saturation user interface may display the percentage of oversaturation of the saturated detector channel. In still other cases, the saturation user interface may prompt the user to adjust the settings of the saturated detector channel.

[0128] Systems according to the present invention may be further configured to generate a representation of multiple histograms of the cytometry data. In particular, in systems according to the present invention, the multiple parallel processing units may be further configured to receive a plurality of histograms of the cytometry data from a general-purpose processor, generate a representation of the multiple histograms by encoding the plurality of histograms, where the encoding includes assigning a color encoding to each histogram value in the representation of the multiple histograms, and transmit the representation of the multiple histograms to the general-purpose processor, which may be further configured to use the representation of the histograms to display the multiple histograms on an output device. In such embodiments, each histogram of the multiple histograms may include light measurements of the cytometry data acquired by each channel of multiple channels of one or more detectors. In such cases, each histogram of the multiple histograms may include the same number of histogram bins. In such system embodiments, corresponding histogram bins of each histogram of the multiple histograms may have the same range of measurements associated therewith. In some embodiments of the system, the representation of the multiple histograms includes a two-dimensional array. In such embodiments of the system, a first dimension of the two-dimensional array may correspond to a histogram bin, and a second dimension of the two-dimensional array may correspond to a histogram of the plurality of histograms. In some embodiments of the system, the parallel processing unit is configured to generate two or more histogram representations substantially simultaneously, meaning that processing on the parallel processing unit corresponding to two or more histograms of the cytometry data occurs simultaneously, such that the latency of generating one histogram representation overlaps with the latency of generating a separate histogram representation. Some embodiments of the system of the invention are configured to generate multiple histogram representations for displaying the multiple histograms substantially in real time.

[0129] In certain embodiments of a system according to the present invention in which multiple histogram representations are generated, the system is configured to display a saturation user interface corresponding to a saturated detector channel. In such cases, the saturation user interface may include displaying the percentage of oversaturation of the saturated detector channel. In other cases, the saturation user interface may include prompts to adjust the settings of the saturated detector channel.

[0130] particle analyzer 3 shows a functional block diagram of an example particle analyzer or sorting control system for analyzing and displaying biological events, such as analysis controller 300. Analysis controller 300 can be configured to implement various processes for controlling the graphical display of biological events.

[0131] The particle analyzer or sorting system 302 may be configured to acquire biological event data. For example, a flow cytometer may generate flow cytometric event data. The particle analyzer 302 may be configured to provide the biological event data to the analysis controller 300. A data communication channel may be included between the particle analyzer 302 and the analysis controller 300. The biological event data may be provided to the analysis controller 300 via the data communication channel.

[0132] The analysis controller 300 may be configured to receive bio-event data from the particle analyzer 302. The bio-event data received from the particle analyzer 302 may include flow cytometric event data. The analysis controller 300 may be configured to provide a graphical display on the display device 306, including a display of one or more histograms of cytometry data or a first plot of bio-event data. For example, the analysis controller 100, 300 may be configured to generate a representation of a histogram for use in displaying the histogram on the display device 306. The analysis controller 300 may further be configured to render a region of interest as a gate around a population of bio-event data shown by the display device 306, e.g., overlaid on the first plot. In some embodiments, the gate may be a logical combination of one or more image regions of interest depicted on a single-parameter histogram or bivariate plot. In some embodiments, the display may be used to display particle parameters. In some embodiments, the display can be used to display applicable settings for the particle analyzer 302 in conjunction with a histogram of the cytometry data for use in calibrating the detectors of the particle analyzer 302.

[0133] Analysis controller 300 may further be configured to display the biological event data within the gate on display device 306 differently from other events within the biological event data outside the gate. For example, analysis controller 300 may be configured to render the color of the biological event data contained within the gate distinct from the color of the biological event data outside the gate. Display device 306 may be implemented as a monitor, tablet computer, smartphone, or other electronic device configured to present a graphical interface.

[0134] The analysis controller 300 can be configured to receive adjustments to the configuration settings of the particle analyzer 302 from a first input device. Such adjustments to the configuration settings, when received by the analysis controller 300 from the first input device, can be used to update the settings of the particle analyzer. For example, in an embodiment, gain settings of a channel detector may be adjusted to avoid saturation of the channel detector.

[0135] Additionally, analysis controller 300 can be configured to receive a gate selection signal identifying a gate from a first input device. For example, first input device may be implemented as a mouse 310. This mouse 310 can initiate a gate selection signal (e.g., by clicking on the desired gate while positioning a cursor there) to analysis controller 300, which identifies the gate to be displayed or manipulated via display device 306. In some implementations, the first device may be implemented as a keyboard 308 or other means for providing input signals to analysis controller 300, such as a touchscreen, a pen, a photodetector, or a voice recognition system. Some input devices may include multiple input functions. In such implementations, each input function may be considered an input device. For example, as shown in FIG. 3, mouse 310 may include a right mouse button and a left mouse button, each of which may generate an activation event.

[0136] This triggering event may cause the analysis controller 300 to change how the data is displayed, what portions of the data are actually displayed on the display device 306, and / or provide input to further processing, such as selecting a population for particle sorting.

[0137] In some embodiments, analysis controller 300 may be configured to detect when gate selection is initiated by mouse 310. Analysis controller 300 may further be configured to automatically modify the visualization of the plot to facilitate the gating process. This modification may be based on a particular distribution of the biological event data received by analysis controller 300.

[0138] The analysis controller 300 may be comprised of at least one general-purpose processing unit and multiple parallel processing units. The analysis controller 300 may be connected to a storage device 304. When the analysis controller 300 includes at least one general-purpose processing unit and multiple parallel processing units, the general-purpose processing unit and each of the multiple processing units may access and utilize the storage device 304. The storage device 304 may be configured to receive and store biological event data from the analysis controller 300. The storage device 304 may also be configured to receive and store flow cytometric event data from the analysis controller 300. The storage device 304 may be further configured to enable retrieval of biological event data, such as flow cytometric event data, by the analysis controller 300. The storage device 304 may also be configured to store one or more histograms of cytometry data.

[0139] The display device 306 may be configured to receive display data from the analysis controller 300. The display data may include a plot of the biological event data and a gate delineating a section of the plot. The display device 306 may be further configured to modify the presented information according to input received from the analysis controller 300 in conjunction with input from the particle analyzer 302, the storage device 304, the keyboard 308, and / or the mouse 310.

[0140] In some embodiments, the analysis controller 300 can generate a user interface to receive example events for filtering. For example, the user interface can include controls for receiving example events or example images. The example events or images, or example gates, can be provided prior to collection of event data for a sample or based on an initial set of events for a portion of the sample.

[0141] 4 shows a system 400 for flow cytometry, according to an exemplary embodiment of the invention. The system 400 includes a flow cytometer 410, a controller / processor 490, and a memory 495. The flow cytometer 410 includes one or more excitation lasers 415a-415c, a focusing lens 420, a flow chamber 425, a forward scatter detector 430, a side scatter detector 435, a fluorescence focusing lens 440, one or more beam splitters 445a-445g, one or more bandpass filters 450a-450e, one or more longpass ("LP") filters 455a-455b, and one or more fluorescence detectors 460a-460f.

[0142] Pump lasers 415a-415c emit light in the form of laser beams. The wavelengths of the laser beams emitted from pump lasers 415a-415c are 488 nm, 633 nm, and 325 nm, respectively, in the exemplary system of FIG. 4. The laser beams are first directed through one or more of beam splitters 445a and 445b. Beam splitter 445a transmits light at 488 nm and reflects light at 633 nm. Beam splitter 445b transmits UV light (light having a wavelength in the range of 10-400 nm) and reflects light at 488 nm and 633 nm.

[0143] The laser beam is then directed to a focusing lens 420, which focuses the beam onto the portion of the fluid stream where the sample particles are located in a flow chamber 425. The flow chamber is the part of a fluidics system that directs particles in the stream, usually one at a time, into the focused laser beam for investigation. The flow chamber can comprise a flow cell in a benchtop flow cytometer or a nozzle tip in a stream-in air cytometer.

[0144] Light from the laser beam interacts with particles in the sample by diffraction, refraction, reflection, scattering, and absorption, with re-emission at a variety of different wavelengths depending on particle properties such as particle size, internal structure, and the presence of one or more fluorescent molecules attached to or naturally present on or in the particle. Fluorescence emission and diffracted, refracted, reflected, and scattered light can be routed through one or more of beam splitters 445a-g, bandpass filters 450a-e, longpass filters 455a-b, and fluorescence focusing lens 440 to one or more of forward scatter detector 430, side scatter detector 435, and one or more fluorescence detectors 460a-f.

[0145] The fluorescence focusing lens 440 collects light emitted from particle-laser beam interactions and routes it toward one or more beam splitters and filters. Bandpass filters, such as bandpass filters 450a-450e, allow a narrow wavelength range to pass through the filter. For example, bandpass filter 450a is a 510 / 20 filter. The first number represents the center of the spectral band. The second number provides the range of the spectral band. Thus, a 510 / 20 filter extends 10 nm on each side of the center of the spectral band, or from 500 nm to 520 nm. Shortpass filters transmit wavelengths of light below a specified wavelength. Longpass filters, such as longpass filters 455a-455b, transmit wavelengths of light above a specified wavelength. For example, longpass filter 455a, a 670 nm longpass filter, transmits wavelengths of light above 670 nm. Filters are often selected to optimize the detector's specificity for a particular fluorescent dye. The filters may be configured so that the spectral band of light transmitted to the detector is close to the emission peak of the fluorescent dye.

[0146] Beam splitters direct light of different wavelengths in different directions. Beam splitters can be characterized by filter properties such as short-pass and long-pass. For example, beam splitter 445g is a 620 short-pass beam splitter, meaning that beam splitter 445g transmits light wavelengths shorter than 620 nm and reflects light wavelengths longer than 620 nm in a different direction. In one embodiment, beam splitters 445a-445g can comprise optical mirrors, such as dichroic mirrors.

[0147] The forward scatter detector 430 is positioned slightly off-axis from the direct beam passing through the flow cell and is configured to detect diffracted light, or excitation light traveling mostly forward through or around the particle. The intensity of light detected by the forward scatter detector depends on the overall particle size. The forward scatter detector may include a photodiode. The side scatter detector 435 is configured to detect diffracted and reflected light from the particle's surface and internal structure, and tends to increase as particle structure becomes more complex. Fluorescent emissions from fluorescent molecules associated with the particles may be detected by one or more fluorescence detectors 460a-460f. The side scatter detector 435 and the fluorescence detector may include photomultiplier tubes. The signals detected by the forward scatter detector 430, side scatter detector 435, and fluorescence detector may be converted to electronic signals (voltage) by the detectors. This data can provide information about the sample.

[0148] Those skilled in the art will recognize that a flow cytometer according to an embodiment of the present invention is not limited to the flow cytometer illustrated in Figure 4, but may include any flow cytometer known in the art. For example, a flow cytometer may have any number of lasers, beam splitters, filters, and detectors at various wavelengths and in a variety of different configurations.

[0149] During operation, the operation of the flow cytometer is controlled by the controller / processor 490, and measurement data from the detectors may be stored in memory 495 and processed by the controller / processor 490. Although not explicitly shown, the controller / processor 490 may comprise at least one general-purpose processor as well as multiple parallel processing units, and may be coupled to the detectors to receive output signals therefrom, and to electrical and electromechanical components of the flow cytometer 400 to control lasers, fluid flow parameters, and the like. Input / output (I / O) functionality 497 may also be provided within the system. The memory 495, controller / processor 490, and I / O 497 may collectively be provided as an integral part of the flow cytometer 410. In such an embodiment, a display may also form part of the I / O functionality 497 for presenting experimental data, including one or more histograms of cytometry data, to a user of the cytometer 400. Alternatively, some or all of the memory 495 and the controller / processor 490 and I / O functionality may be part of one or more external devices, such as a general-purpose computer. In some embodiments, some or all of memory 495 and controller / processor 490 may be in wireless or wired communication with flow cytometer 410. In conjunction with memory 495 and I / O 497, controller / processor 490 may be configured to perform various functions related to the preparation and analysis of flow cytometer experiments.

[0150] The system illustrated in FIG. 4 includes six different detectors that detect fluorescence in six different wavelength bands (which may be referred to herein as "filter windows" for any detector), as defined by the configuration of filters and / or splitters in the beam path from flow cell 425 to each detector. Different fluorescent molecules used in a flow cytometer experiment emit light in their own characteristic wavelength bands. The particular fluorescent labels used in the experiment and their associated fluorescence emission bands may be selected to generally match the filter windows of the detectors. However, as more detectors are provided and more labels are utilized, perfect correspondence between filter windows and fluorescence emission spectra is not possible. While the peak of the emission spectrum of a particular fluorescent molecule may lie within the filter window of one particular detector, it is generally true that part of that label's emission spectrum also overlaps with the filter windows of one or more other detectors. This may be referred to as spillover. I / O 497 may be configured to receive data related to a flow cytometer experiment having a panel of fluorescent labels and multiple cell populations having multiple markers, each cell population having a subset of the multiple markers. I / O 497 may also be configured to receive biological data assigning one or more markers to one or more cell populations, marker concentration data, emission spectrum data, data assigning labels to one or more markers, and cytometer configuration data. Flow cytometer experimental data, such as label spectral characteristics and flow cytometer configuration data, may also be stored in memory 495. Controller / processor 490 may be configured to evaluate one or more assignments of labels to markers.

[0151] FIG. 5 shows a functional block diagram of a particle analysis system for computation-based sample analysis and particle characterization. In some embodiments, the particle analysis system 500 is a flow system. The particle analysis system 500 shown in FIG. 5 can be configured to perform aspects of the methods described herein. The particle analysis system 500 includes a fluidics system 502. The fluidics system 502 can include or be coupled to a sample tube 510 and a moving fluid column within the sample tube through which particles 530 (e.g., cells) of the sample move along a common sample path 520.

[0152] The particle analysis system 500 includes a detection system 504 configured to collect a signal from each particle as it passes through one or more detection stations along a common sample path. A detection station 508 generally refers to a monitoring area 540 of the common sample path. In some embodiments, detection may include detecting light, or one or more other characteristics, of particles 530 as they pass through the monitoring area 540. FIG. 5 shows one detection station 508 with one monitoring area 540. Some embodiments of the particle analysis system 500 may include multiple detection stations. Additionally, some detection stations may monitor more than one region.

[0153] Each signal is assigned a signal value to form a data point for each particle. As described above, this data may be referred to as event data. The data points may be multidimensional data points that include values ​​for each property measured for the particle. The detection system 504 is configured to collect a series of such data points at a first time interval.

[0154] The particle analysis system 500 may also include a control system 506. The control system 506 may include one or more general-purpose processors, multiple parallel processing units, amplitude control circuitry 626, and / or frequency control circuitry 624, as shown in FIG. 6A and described below. The illustrated control system 506 may be operatively associated with the fluidics system 502. The control system 506 may be configured to generate a calculated signal frequency for at least a portion of a first time period based on the Poisson distribution and the number of data points collected by the detection system 504 during the first time period. The control system 506 may further be configured to generate an experimental signal frequency based on the number of data points in the portion of the first time period. The control system 506 may additionally compare the experimental signal frequency to the calculated signal frequency or a predetermined signal frequency. In addition, the control system 506 may be configured to generate a histogram representation of the cytometry data by encoding the histogram. The control system 506 can generate a representation of the histogram by using multiple parallel processing units substantially simultaneously to assign a color to each histogram value and then replicating the color encoding corresponding to the histogram values, for example using a general-purpose processor.

[0155] FIG. 6A is a schematic diagram of a particle analyzer and sorter system 600 (e.g., particle analyzer 302 as shown in FIG. 3) according to one embodiment presented herein. In some embodiments, particle sorter system 600 is a cell sorter system. As shown in FIG. 6A, a droplet-forming transducer 602 (e.g., a piezoelectric oscillator) is coupled to a fluid conduit 601, which may be coupled to, include, or be a nozzle 603. Within fluid conduit 601, sheath fluid 604 hydrodynamically focuses sample fluid 606 containing particles 609 into a moving fluid column 608 (e.g., a stream). Within moving fluid column 608, particles 609 (e.g., cells) move single-file across monitoring area 611 (e.g., where laser streams intersect) and are illuminated by illumination source 612 (e.g., a laser). Vibration of droplet forming transducer 602 causes moving fluid column 608 to break up into multiple droplets 610, some of which contain particles 609.

[0156] During operation, the detection station 614 (e.g., an event detector) identifies when a particle of interest (or cell of interest) crosses the monitoring area 611. The detection station 614 feeds a timing circuit 628, which in turn feeds a flash charging circuit 630. At the droplet break-off point, signaled by a timed droplet delay (Δt), a flash charge is applied to the moving fluid column 608, causing the droplets of interest to carry a charge. The droplets of interest may contain one or more particles or cells to be sorted. The charged droplets can then be sorted by activating deflection plates (not shown) to deflect the droplets into a container, such as a collection tube or a multi-well or microwell sample plate, where a compartment, e.g., a compartment or well or microwell, can be associated with a particular droplet of interest. As shown in FIG. 6A, the droplets can be collected in a waste container 638.

[0157] Detection system 616 (e.g., a droplet boundary detector) serves to automatically determine the phase of the droplet drive signal as a particle of interest passes through monitoring area 611. An exemplary droplet boundary detector is described in U.S. Pat. No. 7,679,039, which is incorporated herein by reference in its entirety. Detection system 616 enables the instrument to accurately calculate the position of each detected particle within the droplet. Detection system 616 can provide inputs to amplitude signal 620 and / or phase signal 618, which in turn provide inputs to amplitude control circuit 626 and / or frequency control circuit 624 (via amplifier 622). Amplitude control circuit 626 and / or frequency control circuit 624 then control droplet forming transducer 602. Amplitude control circuit 626 and / or frequency control circuit 624 can be included within a control system.

[0158] In some embodiments, the sorting electronics (e.g., detection system 616, detection station 614, and processor 640) can be coupled with a memory configured to store the detected events and sorting decisions based thereon. The sorting decisions can be included in the event data for the particles. In some embodiments, detection system 616 and detection station 614 can be implemented as a single detection unit or can be communicatively coupled such that event measurements can be collected by either detection system 616 or detection station 614 and provided to a non-collection element.

[0159] FIG. 6B is a schematic diagram of a particle analyzer and sorter system according to one embodiment presented herein. The particle analyzer and sorter system 600 shown in FIG. 6B includes deflection plates 652 and 654. An electric charge can be applied via a stream charging wire within the barb. This creates a stream of droplets 610 containing particles 610 for analysis. These particles can be illuminated with one or more light sources (e.g., lasers) to generate light scattering and fluorescence information. The information about the particles is analyzed, such as by sorting electronics or other detection systems (not shown in FIG. 6B). Deflection plates 652 and 654 can be independently controlled to attract or repel the charged droplets and direct them toward a destination collection vessel, such as a compartment (e.g., one of 672, 674, 676, or 678). 6B, deflector plates 652 and 654 can be controlled to direct particles along a first path 662 toward a container 674 or along a second path 668 toward a container 678. If a particle is not of interest (e.g., does not exhibit scattering or illumination information within a specified sort range), the deflector plates can allow the particle to continue along flow path 664. Such uncharged droplets can be diverted into a waste container, such as via an aspirator 670.

[0160] Sorting electronics can be included to initiate measurement collection, receive fluorescent signals for particles, and determine how to adjust the deflection plates to cause particle sorting. An exemplary implementation of the embodiment shown in Figure 6B is the BD FACSAria® system of flow cytometers, commercially available from Becton, Dickinson and Company (Franklin Lakes, NJ).

[0161] In some embodiments, one or more components described for particle analyzer and sorter system 600 can be used to analyze and characterize particles regardless of physically sorting those particles into a collection container. Similarly, one or more components described above with respect to particle analysis system 500 (FIG. 5) can be used to analyze and characterize particles with or without physically sorting the particles into a collection container. For example, particles can be grouped or displayed in a tree including at least three groups, as described herein, using one or more of the components of particle sorter system 600 or particle analysis system 500, or alternatively, displayed in one or more histogram formats.

[0162] Systems according to some embodiments may include a display and an operator input device. The operator input device may be, for example, a keyboard, a mouse, etc. The processing module includes at least one general-purpose processor and multiple parallel processing units, all of which have access to memory storing instructions for performing the steps of the subject method. The processing module may include an operating system, a graphical user interface (GUI) controller, system memory, memory storage devices, and input / output controllers, cache memory, data backup units, and many other devices. Each of the general-purpose processor and parallel processing units may be a commercially available processor or one of other processors that are or become available. The processor executes an operating system, which interfaces with firmware and hardware in a well-known manner and facilitates the processor's coordination and execution of functions of various computer programs, which may be written in a variety of programming languages, such as Java, Perl, C++, other high-level or low-level languages, and combinations thereof, as is known in the art. The operating system typically cooperates with the processor to coordinate and execute functions of the other components of the computer. The operating system also provides scheduling, input / output control, file and data management, memory management, and communication control and related services, all in accordance with known techniques. The processor may be any suitable analog or digital system. In some embodiments, one or more general-purpose processors and parallel processing units include analog electronics that provide feedback control, such as negative feedback control.

[0163] The system memory can be any of a variety of known or future memory storage devices. Examples include any commonly available random access memory (RAM), magnetic media such as a resident hard disk or tape, optical media such as a read-write compact disk, flash memory devices, or other memory storage devices. The memory storage device can be any of a variety of known or future devices, including a compact disk drive, tape drive, removable hard disk drive, or disk drive. Such types of memory storage devices typically read from and / or write to a program storage medium (not shown), such as a compact disk, magnetic tape, removable hard disk, or magnetic disk, respectively. Any of these program storage media, or others now in use or that may later be developed, may be considered a computer program product. As will be appreciated, these program storage media typically store computer software programs and / or data. Computer software programs, also referred to as computer control logic, are typically stored in system memory and / or program storage devices used in conjunction with memory storage devices.

[0164] In some embodiments, a computer program product is described comprising a computer-usable medium having stored thereon control logic (a computer software program including program code) that, when executed by a processor of a computer, causes the processor to perform the functions described herein. In other embodiments, some functions are implemented primarily in hardware, for example, using hardware state machines. Implementation of hardware state machines to perform the functions described herein will be apparent to one skilled in the relevant art.

[0165] The memory may be any suitable device, such as a magnetic, optical, or solid-state storage device (including a magnetic or optical disk or tape, RAM, or any other suitable device, fixed or portable), that allows one or more general-purpose processors and multiple parallel processing units, such as a graphics processor, to store and retrieve data. A general-purpose processor may include a general-purpose digital microprocessor that is suitably programmed from a computer-readable medium carrying the necessary program code. A parallel processing unit may include one or more graphics processors that are suitably programmed from a computer-readable medium carrying the necessary program code. The programming may be provided remotely to the processor via one or more communication channels, or may be pre-stored in a computer program product, such as a memory or some other portable or fixed computer-readable storage medium, using any of these devices in conjunction with the memory. For example, a magnetic or optical disk may carry the programming and be readable by a disk writer / reader. The system of the present invention also includes programming, e.g., in the form of a computer program product, algorithms for use in implementing the above-described methods. The programming according to the present invention may be recorded on a computer-readable medium, e.g., any medium that can be directly read and accessed by a computer. Such media include, but are not limited to, magnetic storage media such as magnetic disks, hard disk storage media, and magnetic tape, optical storage media such as CD-ROMs, electrical storage media such as RAM and ROM, portable flash drives, and hybrids of these categories such as magnetic / optical storage media.

[0166] The one or more general-purpose processors may also have access to a communication channel for communicating with users at remote locations, meaning that the users do not have direct contact with the system but instead relay input information to the input manager from an external device, such as a computer connected to a wide area network ("WAN"), a telephone network, a satellite network, or any other suitable communication channel, including a mobile phone (i.e., a smartphone).

[0167] In some embodiments, a system according to the present disclosure may be configured to include a communications interface. In some embodiments, the communications interface includes a receiver and / or a transmitter for communicating with a network and / or another device. The communications interface may be configured for wired or wireless communications, including, but not limited to, radio frequency (RF) communications (e.g., radio frequency identification (RFID), Zigbee communications protocol, WiFi, infrared, wireless universal serial bus (USB), ultra-wideband (UWB), Bluetooth® communications protocol, and cellular communications such as code division multiple access (CDMA) or global system for mobile communications (GSM).

[0168] In one embodiment, the communications interface is configured to include one or more communications ports, e.g., physical ports or interfaces such as a USB port, an RS-232 port, or any other suitable electrical connection port, to enable data communications between the subject system and other external devices, such as computer terminals (e.g., in a clinic or hospital environment), configured for similar complementary data communications.

[0169] In one embodiment, the communication interface is configured for infrared communication, Bluetooth® communication, or any other suitable wireless communication protocol to enable the subject system to communicate with other devices, such as a computer terminal and / or network, a communication-enabled mobile phone, a personal digital assistant, or any other communication device that a user may use in conjunction with the device.

[0170] In one embodiment, the communication interface is configured to provide a connection for data transfer utilizing the Internet Protocol (IP) via a cellular network, short message service (SMS), a wireless connection to a personal computer (PC) on a local area network (LAN) connected to the Internet, or a WiFi connection to the Internet at a WiFi hotspot.

[0171] In one embodiment, the subject system is configured to communicate wirelessly with a server device via a communications interface using a common standard, such as the 802.11 or Bluetooth® RF protocols, or the IrDA infrared protocol. The server device may be another portable device, such as a smartphone, personal digital assistant (PDA), or notebook computer, or a larger device, such as a desktop computer, appliance, etc. In some embodiments, the server device has a display, such as a liquid crystal display (LCD), and input devices, such as buttons, a keyboard, a mouse, or a touchscreen.

[0172] In some embodiments, the communications interface is configured to automatically or semi-automatically communicate data stored in the subject system, e.g., any data storage unit, with a network or server device using one or more of the communications protocols and / or mechanisms described above.

[0173] The output controller may include a controller for any of a variety of known display devices for presenting information to a user, whether human or machine, local or remote. When one of the display devices provides visual information, this information may typically be logically and / or physically organized as an array of picture elements. The graphical user interface (GUI) controller may include any of a variety of known or future software programs for providing a graphical input and output interface between the system and the user and for processing user input. The functional elements of the computer may communicate with each other via a system bus. Some of these communications may be achieved in alternative embodiments using a network or other type of remote communication. The output manager may also provide information generated by the processing module to a user at a remote location, for example, via the Internet, telephone, or satellite network, in accordance with known techniques. Presentation of data by the output manager may be performed in accordance with a variety of known techniques. As some examples, the data may include SQL, HTML, or XML documents, emails or other files, or other forms of data. The data may include Internet URL addresses so that the user can retrieve additional SQL, HTML, XML, or other documents or data from remote sources. The one or more platforms present in the subject system are typically of a class of computers commonly referred to as servers, but may be any type of known or future-developed computer platform. Alternatively, they may be mainframe computers, workstations, or other computer types. They may be connected via any known or future type of cabling or other communication system, including networked or non-networked wireless systems. They may be co-located or physically separated.In some cases, various operating systems may be used on any of the computer platforms, depending on the type and / or configuration of the computer platform selected. Suitable operating systems include Windows 10, Windows NT, Windows XP, Windows 7, Windows 8, iOS, Sun Solaris, Linux, OS / 400, Compaq Tru64 Unix, SGI IRIX, Siemens Reliant Unix, Ubuntu, Zorin OS, etc.

[0174] FIG. 7 illustrates the general architecture of an exemplary computing device 700 according to certain embodiments. The general architecture of computing device 700 illustrated in FIG. 7 includes an arrangement of computer hardware and software components. Computing device 700 may include more (or fewer) elements than those illustrated in FIG. 7 , although not all of these typically conventional elements need be shown to provide a useful disclosure. As illustrated, computing device 700 includes a processing unit consisting of one or more general-purpose processors 710, multiple parallel processing units 715, a network interface 720, a computer-readable medium drive 730, an input / output device interface 740, a display 750, and input devices 760, all of which may communicate with each other via a communication bus. Network interface 720 may provide connectivity to one or more networks or computing systems. Thus, general-purpose processor 710 and parallel processing units 715 may receive information and instructions from other computing systems or services via a network. The general purpose processor 710 as well as the parallel processing unit 715 may also communicate with memory 770 and further provide output information to an optional display 750 via an input / output device interface 740. The input / output device interface 740 may also receive input from optional input devices 760, such as a keyboard, mouse, digital pen, microphone, touch screen, gesture recognition system, voice recognition system, gamepad, accelerometer, gyroscope, or other input device.

[0175] Memory 770 may include computer program instructions (grouped as modules or components in some embodiments) that are executed by the general-purpose processor 710 and / or the parallel processing units 715 to implement one or more embodiments. Memory 770 typically includes RAM, ROM, and / or other persistent, secondary, or non-transitory computer-readable media. Memory 770 may store an operating system 772 that provides computer program instructions for use by the one or more general-purpose processors and each of the multiple parallel processing units 710 in the general management and operation of the computing device 700. Memory 770 may further include computer program instructions and other information for implementing aspects of the present disclosure.

[0176] For example, in one embodiment, memory 770 includes a histogram encoding module 774 for generating a representation of the histogram by encoding the histogram, where the encoding includes assigning a color encoding to each histogram value in the representation of the histogram, and a encoding duplication module 776 for replicating the color encoding corresponding to the histogram values ​​in the representation of the histogram a predetermined number of times.

[0177] Suitable flow cytometry systems include, but are not limited to, those described in Ormerod (ed.), Flow Cytometry: A Practical Approach, Oxford Univ. Press (1997); Jaroszeski et al. (eds.), Flow Cytometry Protocols, Methods in Molecular Biology No. 91, Humana Press (1997); Practical Flow Cytometry, 3rd ed., Wiley-Liss (1995); Virgo, et al. (2012) Ann Clin Biochem. Jan; 49(pt 1):17-28; Linden, et al., Semin Thromb Hemost. 2004 Oct; 30(5):502-11, Alison, et al. J Pathol, 2010 Dec; 222(4):335-344, and Herbig, et al. (2007) Crit Rev Ther Drug Carrier Syst. 24(3):203-255, the disclosures of which are incorporated herein by reference.In certain instances, the flow cytometry systems of interest are a BD Biosciences FACSCanto™ flow cytometer, a BD Biosciences FACSCanto™ II flow cytometer, a BD Accuri™ flow cytometer, a BD Accuri™ C6 Plus flow cytometer, a BD Biosciences FACSCelesta™ flow cytometer, a BD Biosciences FACSLyric™ flow cytometer, a BD Biosciences FACSVerse™ flow cytometer, a BD Biosciences FACSymphony™ flow cytometer, a BD Biosciences LSRFortessa™ flow cytometer, a BD Biosciences LSRFortessa™ X-20 flow cytometer, a BD Biosciences FACSPresto™ flow cytometer, a BD Biosciences FACSVia™ flow cytometer, and a BD Biosciences FACSCalibur™ cell sorter, a BD Biosciences FACSCount™ cell sorter, a BD Biosciences These include the FACSLyric™ cell sorter, and the BD Biosciences Via™ cell sorter, BD Biosciences Influx™ cell sorter, BD Biosciences Jazz™ cell sorter, BD Biosciences Aria™ cell sorter, BD Biosciences FACSAria™ II cell sorter, BD Biosciences FACSAria™ III cell sorter, BD Biosciences FACSAria™ Fusion cell sorter, and the BD Biosciences FACSMelody™ cell sorter, BD Biosciences FACSymphony™ S6 cell sorter, etc.

[0178] In some embodiments, the subject systems may be implemented using the same or similar technology as described in, for example, U.S. Patent Nos. 10,663,476, 10,620,111, 10,613,017, 10,605,713, 10,585,031, 10,578,542, 10,578,469, 10,481,074, 10,302 ,545, No. 10,145,793, No. 10,113,967, No. 10,006,852, No. 9,952,076, No. 9,933,341, No. 9,726,527, No. 9,453,789, No. 9,200,334, No. 9,097,640, No. 9,095,494, No. 9,092,03 No. 4, No. 8,975,595, No. 8,753,573, No. 8,233,146, No. 8,140,300, No. 7,544,326, No. 7,20 No. 1,875, No. 7,129,505, No. 6,821,740, No. 6,813,017, No. 6,809,804, No. 6,372,506, No. 5 ,700,692, 5,643,796, 5,627,040, 5,620,842, 5,602,039, 4,987,086, and 4,498,766, the disclosures of which are incorporated herein by reference in their entireties.

[0179] Computer-readable storage medium for processing and displaying multi-channel spectral histograms Aspects of the present disclosure further include non-transitory computer-readable storage media having instructions for practicing the subject methods. The computer-readable storage medium may be employed on one or more computers for fully or partially automating systems for practicing the methods described herein. In certain embodiments, instructions according to the methods described herein may be encoded on a computer-readable medium in the form of "programming," in which case the term "computer-readable medium," as used herein, refers to any non-transitory storage medium involved in providing instructions and data to a computer for execution and processing. Examples of suitable non-transitory storage media include magnetic disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, DVD-ROMs, Blu-ray disks, solid-state disks, and network-attached storage devices (NAS), whether such devices are internal or external to the computer. A file containing information may be "stored" on a computer-readable medium, where "storing" means recording the information so that it can be accessed and retrieved at a later date by a computer. The computer-implemented methods described herein may be performed using programming that can be written in one or more of any number of computer programming languages, including, for example, Java (Sun Microsystems, Inc., Santa Clara, CA), Visual Basic (Microsoft Corp., Redmond, WA), and C++ (AT&T Corp., Bedminster, NJ), as well as any of many other languages.

[0180] In some embodiments, a subject computer-readable storage medium includes a computer program stored thereon, the computer program including instructions, when loaded into a computer, having: an algorithm for obtaining a histogram of cytometry data of a sample including measurements from particles illuminated in the sample flowing in a flow stream; an algorithm for generating a representation of the histogram by encoding the histogram, where the encoding includes assigning a color to each histogram value in the representation of the histogram and replicating each color corresponding to each histogram value in the representation of the histogram a predetermined number of times; and an algorithm for using the representation of the histogram to display the histogram.

[0181] In embodiments, the subject computer-readable storage medium may be configured such that an algorithm that uses a representation of the histogram to display the histogram includes an algorithm that uses the representation of the histogram to display the histogram on a display device.

[0182] The computer-readable storage medium may also include an algorithm for determining a maximum value in a bin of the histogram and an algorithm for using the maximum value to determine a scale factor for assigning colors to the histogram values. In embodiments, the subject computer-readable storage medium may be configured such that assigning colors to histogram values ​​in the representation of the histogram includes scaling the histogram values ​​using the scale factor to generate scaled histogram values ​​and assigning colors corresponding to the histogram values ​​based on the scaled histogram values. In other embodiments, the computer-readable storage medium may also include an algorithm for obtaining a color palette containing colors available for the histogram representation and an algorithm for using the scaled histogram values ​​to access the color palette and determine colors corresponding to the histogram values. In yet other embodiments, the subject computer-readable storage medium may be configured such that the color palette is an array of different colors and may further include an algorithm for using the scaled histogram values ​​to access the color palette, including an algorithm for using the scaled histogram values ​​to index into the color palette array.

[0183] In embodiments, the subject computer-readable storage medium may be configured to assign colors to multiple histogram values ​​substantially simultaneously. The computer-readable storage medium may also include an algorithm for assigning colors to multiple histogram values ​​substantially simultaneously using multiple parallel processing units.

[0184] In other embodiments, the subject computer-readable storage medium may further include an algorithm for determining whether a detector channel is saturated. For example, the algorithm for determining whether a detector channel is saturated may include an algorithm for determining whether a percentage of oversaturation of the detector channel is greater than a predetermined threshold, where the percentage of oversaturation of the detector channel includes a ratio of the counts of all particle measurements outside established histogram bins to the counts of all particle measurements. The predetermined threshold for saturation may be any suitable percentage, such as, for example, 1% or more, 2% or more, 5% or more, 10% or more, 25% or more, 50% or more, or 75% or more. Certain embodiments may further include an algorithm for displaying a saturation user interface corresponding to the saturated detector channel. In some cases, the saturation user interface includes a prompt to adjust the settings of the saturated detector channel.

[0185] In yet other embodiments, a subject computer-readable storage medium may include an algorithm for acquiring multiple histograms of cytometry data for a sample, an algorithm for generating a representation of the multiple histograms in accordance with any of the instructions of the non-transitory computer-readable storage medium for generating a representation of a single histogram described herein, and an algorithm for using the representation of the multiple histograms to display the multiple histograms. The computer-readable storage medium may be configured such that the algorithm for using the representation of the multiple histograms to display the multiple histograms includes an algorithm for using the representation of the multiple histograms to display the multiple histograms on a display device. In other embodiments, the subject computer-readable storage medium may include an algorithm for generating a representation of each histogram of the multiple histograms, the algorithm including an algorithm for generating representations of two or more histograms substantially simultaneously. In yet other embodiments, the subject computer-readable storage medium may be configured such that the algorithm for generating a representation of each histogram of the multiple histograms is an algorithm for generating the representation of the multiple histograms in substantially real time.

[0186] In embodiments in which multiple histogram representations are generated, the subject computer-readable storage medium may further include an algorithm for causing the display of a saturation user interface corresponding to the saturated detector channel. In some cases, the saturation user interface includes displaying the percentage of oversaturation of the saturated detector channel. In other cases, the saturation user interface includes prompts for adjusting the settings of the saturated detector channel.

[0187] The computer-readable storage medium may be used on one or more computer systems having a display and an operator input device. The operator input device may be, for example, a keyboard, a mouse, etc. The processing module includes a processor that accesses a memory having stored instructions to perform the steps of the subject method. The processing module may include an operating system, a graphical user interface (GUI) controller, a system memory, a memory storage device, and an input / output controller, a cache memory, a data backup unit, and many other devices. The processor may be a commercially available processor or one of other processors that are available or will become available. The processor executes an operating system, which interfaces with firmware and hardware in a well-known manner and facilitates the processor's coordination and execution of functions of various computer programs, which may be written in a variety of programming languages, such as Java, Perl, C++, other high-level or low-level languages, and combinations thereof, as is known in the art. The operating system typically cooperates with the processor to coordinate and execute functions of the other components of the computer. The operating system also provides scheduling, input / output control, file and data management, memory management, and communication control and related services, all in accordance with known techniques.

[0188] Practicality The subject systems, methods, and computer systems find application in a variety of fields where it is desirable to analyze and sort particles, such as cells, within a sample in a fluid medium, such as a biological sample. In some embodiments, the systems and methods described herein find application in flow cytometric characterization of biological samples labeled with fluorescent tags. In other embodiments, the systems and methods find application in emitted light spectroscopy. Additionally, the subject systems and methods are used in improving the efficiency and effectiveness of sorting a sample (e.g., within a flow stream). By improving the efficiency of sorting a sample, it is meant that when the subject systems and methods are employed, fewer particles, such as cells, of the sample may be mischaracterized or misunderstood when sorting or analyzing the sample, for example, due to improper calibration of the detection system. In particular, the subject systems and methods improve the efficiency and effectiveness of analysis or sorting, and may reduce the number of cells wasted in sorting situations, especially when the detector channels used to analyze and / or sort the sample are inaccurately calibrated, such as when the detector channels are saturated. Embodiments of the present disclosure find use where it is desirable to provide a flow cytometer with improved cell sorting efficiency, increased particle collection, particle charging efficiency, more accurate particle charging, and improved particle deflection during cell sorting.

[0189] Embodiments of the present disclosure also find use in applications where cells prepared from a biological sample may be desirable for research, laboratory testing, or therapeutic use. In some embodiments, the subject methods and devices may facilitate obtaining individual cells prepared from a target fluid or tissue biological sample. For example, the subject methods and systems facilitate obtaining cells from fluid or tissue samples used as research or diagnostic specimens for diseases such as cancer. Similarly, the subject methods and systems may facilitate obtaining cells from fluid or tissue samples used in therapy. The disclosed methods and devices enable the analysis and / or separation and collection of cells from biological samples (e.g., organs, tissues, tissue fragments, bodily fluids) with enhanced effectiveness and efficiency and at lower cost compared to conventional flow cytometry systems.

[0190] The following are offered by way of example and not by way of limitation.

[0191] experimental The following examples are provided by way of illustration, not limitation, of calculation-based embodiments of the present invention.

[0192] Processing and Memory Requirements As mentioned above, FIG. 2 shows results from six detectors with histogram information for a total of 80 channels. While a compact display of dozens of channels of light intensity measurements, such as that shown in FIG. 2, is desirable, the processing power required to generate such a display is substantial. The required processing power may be even more limiting, especially in situations where interfacing with instrumentation such as flow-based particle analyzers is required. Every histogram bin for every detector channel has a value that must ultimately be converted, i.e., encoded, and then displayed as a color. To adequately reflect measurements from, for example, a particle analyzer, this process must be repeated frequently, for example, up to 30 times per second.

[0193] Additionally, the display may be used by the operator to make decisions regarding detector settings, for example, the gain for each channel may be adjusted such that the value of the adjusted gain setting needs to be transmitted to an instrument such as a particle analyzer to adjust the corresponding detector electronics.

[0194] To handle all the processing that needs to be performed, the technique according to the present invention is in the form of a computational pipeline that processes the histograms in parallel, for example using a graphics processing unit (GPU). Such a GPU may consist of hundreds of processing units operating in parallel and may be installed on a graphics video card. The GPU may be programmed using a programming API.

[0195] When working with a GPU, histogram data and other information required for processing must be transferred from the central processing unit (CPU) to the GPU. This is a time-consuming operation that can be optimized by reducing the memory required. To achieve this optimization, the histogram memory requirements should be as small as possible. Because memory accesses are typically high-latency operations, reducing the memory required results in a reduced number of memory accesses required, thereby reducing the latency of the operation.

[0196] As an illustrative example of how much memory is required without optimization, consider an 80-channel histogram displayed on a display screen using a 20-pixel wide size for each histogram display. That is, each histogram display is "stretched" horizontally by 20 pixels. Assume each histogram contains 256 bins. Thus, each histogram display in the user interface (UI) requires a width of 20 pixels and a height of 256 pixels. The memory required for such a histogram is calculated by multiplying the width by the height by the number of color channels (4 in this case). This means that to display a single histogram, the memory requirement is at least 20 x 256 x 4, or 20,480 bytes. In other words, in this example, at least 20,480 bytes of memory are required for the representation of a single histogram. To calculate the total amount of memory required for multiple histograms, each corresponding to a different channel, this result is multiplied by the number of histogram channels, which in this example is 80. Overall, processing and displaying all the histograms in a plurality of 80 histograms requires at least 80 x 20,480 or 1,638,400 bytes of memory.

[0197] This is a significant amount of memory, especially when interfacing with instrumentation that may have more limited memory constraints, processing capacity, or bus or other transmission bandwidth. Furthermore, when real-time acquisition is involved (e.g., requiring multiple histogram displays to be updated at 30 frames per second (fps)), 30 x 1,638,400 or 49,152,000 bytes need to be uploaded to and downloaded from the GPU every second. This data manipulation rate is difficult to achieve given typical hardware and software constraints.

[0198] Embodiments of the present invention can reduce memory usage by encoding each histogram rendered to a display surface using 1x256 pixel dimensions when the histogram consists of 256 bins. When four color channels are used, this results in a total memory footprint for a single histogram of 4x256, or 1,024 bytes. This is a 20x reduction compared to the aforementioned 20,480 byte requirement without the present invention. With 80-channel histograms, an exemplary method according to the present invention results in a memory footprint of 80x1,024, or 81,920 bytes, substantially smaller than previous estimates of at least 1,638,400 bytes required to represent 80 histograms. After leveraging a GPU to generate a representation of the histogram with 1x256 pixel dimensions, a general-purpose CPU can be used to apply post-processing to complete the histogram representation and render the color-encoded histogram to the screen. The actual display to the user is preferably much larger, e.g., 20 pixels wide, but the operations required to replicate each color corresponding to each histogram value in the histogram representation a predetermined number of times (i.e., 20 times) are relatively very fast operations.

[0199] 8 illustrates the processing of multiple histograms according to an embodiment of the present invention. On the left, a histogram 810 of cytometry data has bins 820 with 83 values. The histogram 810 of cytometry data is a one-dimensional array of data values, with each array entry corresponding to a histogram bin. The histogram values ​​in bins 820 are scaled to fit within the range of display colors shown in a color palette 830, in this example, within a range of 256 colors. The color corresponding to histogram value 83 and its encoding are extracted from the color palette 830 and assigned to pixel value 850 of a representation of histogram 840a stored in a drawing area of ​​the GPU. To assign a color corresponding to histogram bin 820, the scaled value of histogram value 83 is used to index into the color palette 830. Repeating this process for all histogram values ​​results in all 256 bins of histogram 810 of cytometry data having their corresponding colors assigned, resulting in a representation of histogram 840b, the same representation of the histogram shown in all assigned colors and still stored in the GPU's drawing area. This process continues for all histograms in plurality of histograms 860. The completed representation of histogram 840b is included in plurality of histograms 840, shown as representation of histogram 860. As shown in FIG. 8, the number of columns in plurality of histograms 860 is equal to the number of individual histograms, each corresponding to a different detector channel.

[0200] As a result of the above processing, the representation of the multiple histograms 860 has all histogram bins coded with colors assigned based on the corresponding histogram values, and the drawing area of ​​the GPU is completely colored with these assigned colors. This drawing area of ​​the GPU, which stores the representation of the multiple histograms, is transferred to the CPU using a draw call or similar API function call. However, at this point, nothing is displayed or otherwise visible on the screen. This is the next step in the process. The representation of the multiple histograms 860, or drawing canvas, becomes the source of all histogram colors, even though each histogram in the representation of the multiple histograms 860 is only one pixel wide at this point in the process. The next step is to take a strip of the representation of the histograms, which is 1x256, and draw it to another destination canvas, but the image is "stretched" a predetermined number of times to the desired width, in this case 20 pixels.

[0201] Rendering Process The rendering process is described in more detail below in the context of processing by the parallel processing units of a GPU, as explained above.

[0202] During rendering by the GPU's parallel processing units, every pixel location / color in the histogram representation corresponds to a histogram / bin location. Figure 9 shows another diagram of this process. The optimization employed in this invention is that the location, i.e., pixel viewport, in the representation of multiple histograms 920 exactly matches the array of histogram values ​​of multiple histograms 910. The pixel values ​​are input for GPU processing at 910 along with x and y position information to identify the histogram and histogram bin. The x value is used as the bin value and the y value is the histogram of interest.

[0203] The bin value and such identifier of the histogram of interest are used as lookup information to obtain a histogram value, such as histogram value 930 in the plurality of histograms 910. Once the color information is retrieved, a pixel location in the representation of histogram 920 is established. As can be seen in Figure 9, histogram value 930 is placed in the histogram data 910 at a location that corresponds to entry 940 in the representation of the plurality of histograms 920. That is, both entries have the same x and y coordinates in the input data of the plurality of histograms 910 and the representation of the plurality of histograms 920.

[0204] In the context of a hardware implementation, depending on the quality of the video card, the GPU will have a set of processors working in parallel on each pixel, which results in very fast processing of the histogram to generate multiple histogram representations.

[0205] Histogram Post-Processing Representations of multiple histograms, such as the representation of multiple histograms 860 in FIG. 8 , are generated that are single-pixel wide. After projecting such representations onto a GPU canvas, the representations of the multiple histograms are copied to multiple canvases associated with the user interface. FIG. 10 illustrates this process of “stretching” the width of each representation of a histogram by replicating each color corresponding to each histogram value in the representation of the histogram a predetermined number of times. The representation of multiple histograms 1010 is each stretched by replicating each color horizontally a predetermined number of times, resulting in representations of multiple histograms 1020 that are wide enough to be used to display the multiple histograms to a user. For example, representation 1030a is stretched by replicating each color horizontally a predetermined number of times, resulting in representation 1030b. This is a relatively fast operation and is highly flexible. If a design change to the user interface is needed or desired, only minor modifications are required to this drawing routine, which consists of replicating each color corresponding to each histogram value in the representation of the histogram a predetermined number of times.

[0206] At this point, the representation of the multiple histograms 1010 has been processed into a representation of histogram 1020 that is used to display the multiple histograms as colors appear on the screen.

[0207] An overview of the exemplary workflow 1100 described above is shown in FIG. 11. The exemplary workflow 1100 begins in step 1110 with a process of generating a representation of multiple histograms of cytometry data, where a central processing unit (CPU, as opposed to a graphics processing unit) acquires cytometry data in the form of receiving multiple histograms of cytometry data from an instrument such as a particle analyzer. From step 1110, the workflow continues to step 1115. In step 1115, the process iterates through all histogram values ​​of all histograms to find the maximum histogram value for each histogram. Such maximum histogram value is the value of the histogram bin with the greatest number of measurements for the range of light intensity values ​​corresponding to that histogram bin.

[0208] The process then proceeds to step 1120, which includes preprocessing the histogram data to be manipulated by the graphics processing unit, possibly ordering the multiple histograms in memory so that the histogram data is recognizable to the GPU as a texture table. In step 1125, the multiple histograms, a representation of the multiple histograms, and metadata characterizing the histogram display are created. In workflow 1100, such data includes the number of histograms in the multiple histograms and the histogram width (i.e., a predetermined number of pixels) in the final display of the multiple histograms. The table created in step 1120 and the metadata created in step 1125 are uploaded to a graphics processing unit (GPU) in step 1130, where GPU software inputs and processes these data elements. In step 1135, the GPU is configured to generate a representation of the multiple histograms, consisting of an encoding of a color corresponding to the histogram values, based on the number of histograms and the width of each histogram.

[0209] In step 1140, GPU processing for generating a representation of the multiple histograms begins by initiating one or more software routines on the GPU. Such processing consists of loading histogram values ​​from the multiple histograms in steps 1145 and 1150, where, based on the configuration of the multiple histograms in memory, the location of each histogram value also corresponds to the pixel representing that histogram value in the representation of the multiple histograms. That is, as described above, each histogram value may be associated with x and y coordinates in the final representation of the histograms, which also function to index into one of the multiple histograms and into one of the multiple histogram bins. Once the histogram values ​​are loaded, the next step 1155 is to scale the histogram values ​​using the maximum value associated with the histogram, along with the number of colors available in the color palette, so that the scaled histogram values ​​can be used to look up colors in the color palette. After the color palette is accessed to obtain the color associated with the histogram value in step 1155, the color encoding for that histogram location, which is the pixel location corresponding to the histogram bin's location in a representation of the histogram, is stored in the histogram representation in step 1160. Each of steps 1145-1160 may be performed substantially simultaneously on multiple processing units of the GPU. Such concurrent processing is possible because read and write accesses to the histogram representation in memory are to different memory locations, so that each operation is independent of each other; even though the color palette may be accessed across different concurrent processing threads, the color palette data is only read, never written, thereby reducing resource contention that could otherwise interfere with potential parallel processing.

[0210] After all pixels in the multiple histogram representations have been processed, in step 1165 the multiple histogram representations are post-processed by copying them to a temporary canvas, i.e., a temporary location in memory. Finally, in step 1170, each pixel of each 1-pixel wide representation of the histogram is copied a predetermined number of times, in this case 20 times, to form a 20-pixel wide representation of the histogram so that the multiple histogram representations can be used to display the histogram.

[0211] FIG. 12 shows a display 1200 of a plurality of histograms 1210 in accordance with the present invention. The plurality of histograms 1210 is similar to the plurality of histograms 210 shown in FIG. 2. An individual histogram 1210a of the plurality of histograms 1210 corresponds to a saturated detector channel 15. Saturation is determined when the histogram bin count falls outside the established range of the histogram. That is, saturation of the channel detector 15 is detected when a threshold number of measurements corresponding to the detector channel 15 falls outside the established range of the bins of histogram 1210a.

[0212] Because the detector channel 15 is saturated, the individual histogram 1210a is highlighted and enlarged relative to the other histograms in the display of the multiple histograms 1210, indicated by including an exclamation point display near the histogram 1210a. These additional display features are included to notify the user that the individual histogram 1210a indicates that the channel detector 15 is saturated and can be displayed as soon as the histogram 1210a is detected to correspond to a saturated channel detector. A saturation user interface 1220 corresponding to the individual histogram 1210a is also displayed when the detector channel 15 is saturated. The saturation user interface 1220 includes the percentage of oversaturation of the saturated detector channel 15, describing that the channel is 50% saturated. The percentage of oversaturation is a calculation made using the number of measurements, i.e., events, outside the range of the histogram 1210a divided by the total number of measurements, i.e., events, that make up the histogram 1210a. In this case, 50% of the measurements corresponding to the channel detector 15 fall outside the established range of the individual histogram 1210a.

[0213] In addition, the saturation user interface 1220 includes additional text prompting the user to adjust settings of the underlying particle analyzer used to collect the cytometry data, including data parameters acquired via the saturated channel detector 15. Adjustments to address detector channel saturation may include adjusting the gain of the saturated detector channel. Although not shown in FIG. 12 , in some cases, the saturation user interface 1220 may display recommendations for adjusting gain settings to mitigate the saturation indicated by the detector channel 15 and shown in the individual histogram 1210 a.

[0214] Regardless of the scope of the appended claims, the present disclosure is also clarified by the following notes.

[0215] 1. A method of generating a representation of a histogram for displaying the histogram, comprising: acquiring a histogram of cytometry data for the sample, the cytometry data including measurements from illuminated particles in the sample flowing in the flow stream; generating a representation of the histogram by encoding the histogram, the encoding comprising: assigning a color to each histogram value in the representation of the histogram; generating a representation of the histogram, the representation comprising: replicating each color corresponding to each histogram value in the representation of the histogram a predetermined number of times; Using the histogram representation to display the histogram A method comprising: 2. The method of claim 1, wherein the cytometry data comprises light measurements from illuminated particles in the sample. 3. The method of claim 2, wherein the light measurements are measurements of light intensity. 4. Cytometry Data excitation light scattered by the particles primarily along the forward direction; excitation light scattered by the particle primarily along the lateral direction; one or more frequency ranges of light emitted from fluorescent molecules or fluorescent dyes used to label the particles; 4. The method of claim 2 or 3, comprising measuring one or more of: 5. A histogram contains multiple bins, 5. The method of any one of appendixes 1 to 4, wherein the histogram values ​​are associated with histogram bins.

[0216] 6. The method of claim 5, wherein each histogram bin corresponds to a range of measurements from irradiated particles in the sample. 7. The method of claim 6, wherein the measurements are measurements of light intensity. 8. The method of claim 7, wherein the histogram is a spectral intensity histogram. 9. The method of any one of clauses 1-8, wherein using the representation of the histogram to display the histogram comprises using the representation of the histogram to display the histogram on a display device. 10. The method of any one of appendices 1 to 9, wherein the predetermined number is the number of pixels displayed horizontally in the displayed histogram.

[0217] 11. The method of any one of appendices 1 to 10, wherein the shape of the displayed histogram is rectangular, the vertical axis of the displayed histogram corresponds to the histogram bins, and the colors within the displayed histogram correspond to the histogram values. 12. The method of claim 11, wherein different colors in the displayed histogram correspond to different histogram values. 13. The method of any one of appendices 1 to 12, wherein the representation of the histogram comprises an array. 14. The method of claim 13, wherein assigning a color to each histogram value in the representation of the histogram includes assigning a display color encoding to elements of the array along a vertical axis of the array. 15. The method of claim 13 or 14, wherein assigning a color to each histogram value in the representation of the histogram includes assigning a display color encoding to only a single array element at each vertical position of the array.

[0218] 16. The method of any one of appendices 13 to 15, wherein the vertical axis of the array is 256 entries. 17. The method of any one of appendixes 13 to 16, wherein replicating each color corresponding to each histogram value in the representation of the histogram includes replicating elements of the array along the horizontal axis of the array. 18. The method of any one of appendices 13 to 17, wherein each element of the array corresponds to a pixel in a representation of the histogram. 19. The method of any one of claims 13 to 18, wherein the elements of the array along the vertical axis correspond to pixels on the vertical axis in a representation of the histogram. 20. Determining the maximum value in a bin of a histogram; The maximum value is used to determine a scale factor for assigning colors to histogram values. 20. The method of any one of appendices 1 to 19, further comprising:

[0219] 21. Assigning colors to histogram values ​​in a histogram representation is scaling the histogram values ​​using a scale factor to generate scaled histogram values; and assigning colors corresponding to the histogram values ​​based on the scaled histogram values. 22. Obtaining a color palette containing colors available for representation of the histogram; Use the scaled histogram values ​​to access the color palette and determine the color that corresponds to the histogram value. 22. The method of claim 21, further comprising: 23. The method of claim 22, wherein the color palette is an array of distinct colors, and wherein using the scaled histogram values ​​to access the color palette includes using the scaled histogram values ​​to index into the color palette array. 24. The method of claim 22 or 23, wherein the color palette includes 256 colors. 25. The method of claim 24, wherein 8 bits are used to represent each color in the histogram representation.

[0220] 26. The method of any one of appendixes 1 to 25, wherein colors are assigned to multiple histogram values ​​substantially simultaneously. 27. The method of claim 26, further comprising using a plurality of parallel processing units to assign colors to a plurality of histogram values ​​substantially simultaneously. 28. The method of claim 27, wherein the plurality of parallel processing units includes a graphics processing unit. 29. The method of claim 28, wherein the graphics processing unit comprises more than 100 processing units, each processing unit configured to substantially simultaneously assign colors to histogram values ​​in the representation of the histogram. 30. The method of claim 28 or 29, wherein the graphics processing unit is located on a graphics processing card.

[0221] 31. The method of any one of appendices 28-30, wherein the graphics processing unit receives as input a one-dimensional array corresponding to a histogram. 32. The method of any one of appendices 28-31, wherein the graphics processing unit outputs a one-dimensional array corresponding to a representation of the histogram. 33. The method of any one of appendixes 28 to 32, wherein replicating each color corresponding to each histogram value in the representation of the histogram is not performed by a graphics processing unit. 34. The method of any one of claims 1 to 33, wherein generating the representation of the histogram is performed substantially in real time. 35. The method of any one of claims 1 to 34, further comprising determining whether the detector channel is saturated.

[0222] 36. Determining whether a detector channel is saturated includes determining whether a percentage of oversaturation of the detector channel is greater than a predetermined threshold; 36. The method of claim 35, wherein the percentage of oversaturation of a detector channel comprises a ratio of counts of all particle measurements outside established histogram bins to counts of all particle measurements. 37. The method of claim 35 or 36, further comprising displaying a saturation user interface corresponding to the saturated detector channel. 38. The method of claim 37, wherein the saturation user interface includes displaying the percentage of oversaturation of the saturated detector channel. 39. The method of claim 37 or 38, wherein the saturation user interface includes prompts for adjusting settings of the saturation detector channel. 40. The method of any one of appendices 1 to 39, further comprising adjusting settings for collecting cytometry data based on the display of the histogram.

[0223] 41. The method of claim 40, wherein adjusting the settings includes adjusting gain settings of a channel of a detector for collecting cytometry data. 42. The method of claim 41, wherein adjusting the gain setting of a detector channel for collecting cytometry data includes preventing saturation of the detector channel. 43. A method of generating a representation of a histogram for displaying a plurality of histograms, comprising: obtaining a plurality of histograms of cytometry data for the sample; generating a representation of a plurality of histograms according to any one of claims 1 to 42; and Using multiple histogram representations to display multiple histograms A method comprising: 44. The method of claim 43, wherein each histogram of the plurality of histograms comprises light measurements of cytometry data acquired by each channel of a plurality of channels of one or more detectors. 45. The method of claim 44, wherein each histogram of the multiple histograms includes the same number of histogram bins.

[0224] 46. ​​The method of claim 45, wherein corresponding histogram bins in each histogram of the multiple histograms have the same range of measurements associated with them. 47. The method of any one of notes 43 to 46, wherein using a representation of the multiple histograms to display the multiple histograms includes using a representation of the multiple histograms to display the multiple histograms on a display device. 48. The method of any one of appendixes 43 to 47, wherein the representation of the multiple histograms comprises a two-dimensional array. 49. The method of claim 48, wherein a first dimension of the two-dimensional array corresponds to a histogram bin and a second dimension of the two-dimensional array corresponds to a histogram of the plurality of histograms. 50. The method of any one of clauses 43-49, wherein the two or more histogram representations are generated substantially simultaneously.

[0225] 51. The method of any one of appendixes 43-50, wherein displaying the plurality of histograms further comprises displaying a saturation user interface corresponding to a saturated detector channel. 52. The method of claim 51, wherein the saturation user interface includes displaying the percentage of oversaturation of the saturated detector channel. 53. The method of claim 51 or 52, wherein the saturation user interface includes prompts for adjusting settings of the saturation detector channel. 54. The method of any one of claims 43 to 53, further comprising adjusting settings for collecting cytometry data based on display of the multiple histograms. 55. The method of claim 54, wherein adjusting the settings includes adjusting gain settings of one or more channels of one or more detectors for collecting cytometry data.

[0226] 56. The method of claim 55, wherein adjusting gain settings of one or more channels of one or more detectors includes preventing saturation of one or more channels of one or more detectors. 57. The method of any one of claims 43 to 56, wherein generating a representation of each histogram of the plurality of histograms is performed substantially in real time. 58. A method according to any one of claims 1 to 57, wherein obtaining a histogram of cytometry data of the sample comprises generating a histogram of data measurements from flow cytometry analysis of the sample.

[0227] 59. A system for generating a representation of a histogram for displaying the histogram, comprising: A general-purpose processor comprising a memory operatively coupled to the general-purpose processor, the memory having instructions stored therein, the instructions, when executed by the general-purpose processor, causing the general-purpose processor to: acquiring a histogram of cytometry data for the sample, the cytometry data including measurements from illuminated particles in the sample flowing in the flow stream; transmitting the histogram to a plurality of parallel processing units; receiving a representation of the histogram from a plurality of parallel processing units, the representation including an encoding of a color corresponding to each histogram value; replicating the color encoding corresponding to the histogram values ​​in the representation of the histogram a predetermined number of times; and using the representation of the histogram to display the histogram on an output device. a plurality of parallel processing units operably connected to a general purpose processor, the plurality of parallel processing units comprising a memory operably coupled to the plurality of parallel processing units, the memory having instructions stored therein, the instructions, when executed by the plurality of parallel processing units, causing the plurality of parallel processing units to: receiving a histogram from a general-purpose processor; generating a representation of the histogram by encoding the histogram, where encoding includes assigning a color encoding to each histogram value in the representation of the histogram; and transmitting the representation of the histogram to a general purpose processor. A system comprising: 60. The system of claim 59, wherein the cytometry data includes light measurements from illuminated particles in the sample. 61. The system of claim 60, wherein the light measurement is a measurement of light intensity. 62. Excitation light scattered by the particle primarily along the forward direction; excitation light scattered by the particle primarily along the lateral direction; one or more frequency ranges of light emitted from fluorescent molecules or fluorescent dyes used to label the particles; 62. The system of claim 60 or 61, comprising one or more measurements of: 63. A histogram contains multiple bins. 63. The system of any one of clauses 59-62, wherein the histogram values ​​are associated with histogram bins.

[0228] 64. The system of claim 63, wherein each histogram bin corresponds to a range of measurements from particles illuminated in the sample. 65. The system of claim 64, wherein the measurement is a measurement of light intensity. 66. The system of claim 65, wherein the histogram is a spectral intensity histogram. 67. Further comprising a display device operably connected to the general-purpose processor; 67. The system of any one of claims 59 to 66, wherein using the representation of the histogram to display the histogram on an output device includes using the representation of the histogram to display the histogram on a display device. 68. The system of any one of appendices 59 to 67, wherein the predetermined number is the number of pixels displayed horizontally in the displayed histogram.

[0229] 69. A system described in any one of appendices 59 to 68, wherein the shape of the displayed histogram is rectangular, the vertical axis of the displayed histogram corresponds to histogram bins, and the colors within the displayed histogram correspond to histogram values. 70. The system of claim 69, wherein different colors in the displayed histogram correspond to different histogram values. 71. The system of any one of notes 59-70, wherein the representation of the histogram comprises an array. 72. The system of claim 71, wherein assigning a color coding to each histogram value in the representation of the histogram includes assigning a display color coding to elements of the array along a vertical axis of the array. 73. The system of claim 71 or 72, wherein assigning a color coding to each histogram value in the representation of the histogram includes assigning a display color coding to only a single array element at each vertical position of the array.

[0230] 74. The system of any one of Appendices 71 to 73, wherein the vertical axis of the array is 256 entries. 75. The system of any one of notes 71 to 74, wherein replicating each encoding of a color corresponding to a histogram value in the representation of the histogram includes replicating elements of the array along the horizontal axis of the array. 76. The system of any one of notes 71 to 75, wherein each element of the array corresponds to an output device pixel in a representation of the histogram. 77. The system of any one of notes 71-76, wherein the elements of the array along the vertical axis correspond to output device pixels along the vertical axis in a display of the histogram. 78. A general-purpose processor comprising a memory operably coupled to the general-purpose processor, the memory having further instructions stored therein, the instructions, when executed by the general-purpose processor, causing the general-purpose processor to: determining the maximum value in a bin of the histogram; 78. The system of any one of clauses 59-77, further comprising using the maximum value to determine a scale factor for assigning colors to histogram values.

[0231] 79. Assigning color coding to histogram values ​​in a representation of a histogram scaling the histogram values ​​using a scale factor to generate scaled histogram values; assigning colors corresponding to the histogram values ​​based on the scaled histogram values; 79. The system of claim 78, comprising: 80. A general-purpose processor comprising a memory operably coupled to the general-purpose processor, the memory having further instructions stored therein, the instructions, when executed by the general-purpose processor, causing the general-purpose processor to: obtaining a color palette containing colors available for the histogram representation; 80. The system of claim 79, further comprising: accessing a color palette using the scaled histogram values ​​to determine colors corresponding to the histogram values. 81. The system of claim 80, wherein the color palette is an array of distinct colors, and wherein using the scaled histogram values ​​to access the color palette includes using the scaled histogram values ​​to index into the color palette array. 82. The system of claim 80 or 81, wherein the color palette includes 256 colors. 83. The system of claim 82, wherein 8 bits are used to represent each color in the histogram representation.

[0232] 84. The system of any one of notes 59 to 83, wherein the plurality of parallel processing units comprises a memory operably coupled to the plurality of parallel processing units, the memory having further instructions stored therein, the instructions, when executed by the plurality of parallel processing units, further causing the plurality of parallel processing units to substantially simultaneously assign color encodings to the plurality of histogram values ​​in the representation of the histogram. 85. The system of claim 84, wherein the plurality of parallel processing units comprises a graphics processing unit. 86. The system of claim 85, wherein the graphics processing unit comprises more than 100 processing units, each processing unit configured to substantially simultaneously assign color encodings to histogram values ​​in the representation of the histogram. 87. The system of claim 86, wherein the graphics processing unit is located on a graphics processing card. 88. The system of any one of notes 85-87, wherein the graphics processing unit receives as input a one-dimensional array corresponding to the histogram.

[0233] 89. The system of any one of notes 85 to 88, wherein the graphics processing unit sends as output a one-dimensional array corresponding to a representation of the histogram. 90. The system of any one of clauses 59 to 89, wherein the system is configured to generate a representation of the histogram for displaying the histogram substantially in real time. 91. The system of any one of notes 59 to 90, wherein the system is configured to determine whether a detector channel is saturated. 92. The system of claim 91, wherein the system is configured to determine whether a detector channel is saturated by determining whether a percentage of oversaturation of the detector channel is greater than a predetermined threshold, and the percentage of oversaturation of the detector channel comprises a ratio of the counts of all particle measurements outside established histogram bins to the counts of all particle measurements. 93. The system of any one of claims 91 to 92, wherein the system is further configured to display a saturation user interface corresponding to a saturated detector channel.

[0234] 94. The system of claim 93, wherein the saturation user interface includes displaying the percentage of oversaturation of the saturated detector channel. 95. The system of any one of appendix 93 and 94, wherein the saturation user interface includes prompts for adjusting settings of the saturation detector channel. 96. The plurality of parallel processing units comprises a memory operably coupled to the plurality of parallel processing units, the memory having further instructions stored therein, the instructions, when executed by the plurality of parallel processing units, causing the plurality of parallel processing units to: receiving a plurality of histograms of cytometry data from a general purpose processor; generating a representation of the plurality of histograms by encoding the plurality of histograms, the encoding including assigning a color encoding to each histogram value in the representation of the plurality of histograms; and transmitting a representation of the plurality of histograms to a general-purpose processor; The general-purpose processor comprises a memory operatively coupled to the general-purpose processor, the memory having further instructions stored therein, the instructions, when executed by the general-purpose processor, causing the general-purpose processor to: 96. The system of any one of clauses 59 to 95, further comprising using the representation of the histograms to display a plurality of histograms on an output device. 97. The system of claim 96, wherein each histogram of the plurality of histograms includes light measurements of cytometry data acquired by each channel of a plurality of channels of one or more detectors. 98. The system of claim 97, wherein each histogram of the multiple histograms includes the same number of histogram bins.

[0235] 99. The system of claim 98, wherein corresponding histogram bins in each histogram of the multiple histograms have the same range of measurements associated therewith. 100. The system of any one of clauses 96-99, wherein the representation of the multiple histograms comprises a two-dimensional array. 101. The system of claim 100, wherein a first dimension of the two-dimensional array corresponds to a histogram bin and a second dimension of the two-dimensional array corresponds to a histogram of the plurality of histograms. 102. The system of any one of appendices 96-101, wherein the plurality of parallel processing units comprises a memory operably coupled to the plurality of parallel processing units, the memory having further instructions stored therein, the instructions, when executed by the plurality of parallel processing units, further causing the plurality of parallel processing units to generate two or more representations of the histogram substantially simultaneously. 103. The system of any one of clauses 96-102, wherein the system is configured to generate representations of the multiple histograms for displaying the multiple histograms substantially in real time.

[0236] 104. The system of any one of appendixes 96-103, wherein the system is configured to display a saturation user interface corresponding to a saturated detector channel. 105. The system of claim 104, wherein the saturation user interface includes displaying the percentage of oversaturation of the saturated detector channel. 106. The system of any one of appendix 104 and 105, wherein the saturation user interface includes prompts for adjusting settings of the saturation detector channel.

[0237] 107. A non-transitory computer-readable storage medium having stored thereon instructions for generating a representation of a histogram for displaying the histogram, the instructions comprising: an algorithm for obtaining a histogram of cytometry data of a sample, the cytometry data comprising measurements from illuminated particles in the sample flowing in a flow stream; 1. An algorithm for generating a representation of a histogram by encoding the histogram, the encoding comprising: assigning a color to each histogram value in the representation of the histogram; replicating each color corresponding to each histogram value in the representation of the histogram a predetermined number of times; Algorithms for using histogram representations to display histograms and 1. A non-transitory computer-readable storage medium comprising: 108. The non-transitory computer-readable storage medium of claim 107, wherein the cytometry data includes light measurements from illuminated particles in the sample. 109. The non-transitory computer-readable storage medium of claim 108, wherein the light measurements are measurements of light intensity. 110. Cytometry data are excitation light scattered by the particles primarily along the forward direction; excitation light scattered by the particle primarily along the lateral direction; one or more frequency ranges of light emitted from fluorescent molecules or fluorescent dyes used to label the particles; 101. The non-transitory computer-readable storage medium of claim 108 or 109, comprising one or more measurements of: 111. A histogram contains multiple bins. 111. The non-transitory computer-readable storage medium of any one of Clauses 107-110, wherein the histogram values ​​are associated with histogram bins.

[0238] 112. The non-transitory computer-readable storage medium of claim 111, wherein each histogram bin corresponds to a range of measurements from particles illuminated in the sample. 113. The non-transitory computer-readable storage medium of claim 112, wherein the light measurements are measurements of light intensity. 114. The non-transitory computer-readable storage medium of claim 113, wherein the histogram is a spectral intensity histogram. 115. The non-transitory computer-readable storage medium of any one of appendices 107 to 114, wherein the algorithm using the representation of the histogram to display the histogram includes an algorithm using the representation of the histogram to display the histogram on a display device. 116. The non-transitory computer-readable storage medium of any one of appendices 107 to 115, wherein the predetermined number is the number of pixels displayed horizontally in the displayed histogram.

[0239] 117. The non-transitory computer-readable storage medium of any one of appendices 107 to 116, wherein the shape of the displayed histogram is rectangular, the vertical axis of the displayed histogram corresponds to histogram bins, and the colors within the displayed histogram correspond to histogram values. 118. The non-transitory computer-readable storage medium of Claim 117, wherein different colors in the displayed histogram correspond to different histogram values. 119. The non-transitory computer-readable storage medium of any one of Appendices 107-118, wherein the representation of the histogram comprises an array. 120. The non-transitory computer-readable storage medium of claim 119, wherein assigning a color to each histogram value in the representation of the histogram includes assigning a display color encoding to elements of the array along a vertical axis of the array. 121. The non-transitory computer-readable storage medium of claim 119 or 120, wherein assigning a color to each histogram value in the representation of the histogram includes assigning a display color encoding to only a single array element at each vertical position of the array.

[0240] 122. The non-transitory computer-readable storage medium of any one of Appendices 119-121, wherein the vertical axis of the array is 256 entries. 123. The non-transitory computer-readable storage medium of any one of appendices 119 to 122, wherein replicating each color corresponding to each histogram value in the representation of the histogram includes replicating elements of the array along the horizontal axis of the array. 124. The non-transitory computer-readable storage medium of any one of Appendices 119-123, wherein each element of the array corresponds to a pixel in a representation of the histogram. 125. The non-transitory computer-readable storage medium of any one of Appendices 119-124, wherein elements of the array along the vertical axis correspond to pixels of the vertical axis in a representation of the histogram. 126. further instructions stored on a non-transitory computer-readable storage medium, the further instructions comprising: an algorithm for determining the maximum value in a bin of the histogram; and an algorithm for using the maximum value to determine a scale factor for assigning colors to histogram values.

[0241] 127. Assigning colors to histogram values ​​in a histogram representation is scaling the histogram values ​​using a scale factor to generate scaled histogram values; and assigning colors corresponding to the histogram values ​​based on the scaled histogram values. 128. further instructions stored on a non-transitory computer-readable storage medium, the further instructions comprising: an algorithm for obtaining a color palette containing available colors for the histogram representation; and an algorithm for using the scaled histogram values ​​to access a color palette and determine a color corresponding to the histogram values. 129. The non-transitory computer-readable storage medium of Appendix 128, wherein the color palette is an array of distinct colors, and wherein the algorithm for accessing the color palette using the scaled histogram values ​​includes an algorithm for indexing into the color palette array using the scaled histogram values. 130. The non-transitory computer-readable storage medium of claim 128 or 129, wherein the color palette includes 256 colors. 131. The non-transitory computer-readable storage medium of Claim 130, wherein 8 bits are used to represent each color in the histogram representation.

[0242] 132. The non-transitory computer-readable storage medium of any one of appendices 107-131, wherein colors are assigned to multiple histogram values ​​substantially simultaneously. 133. The non-transitory computer-readable storage medium of Claim 132, including further instructions stored on the non-transitory computer-readable storage medium, the further instructions including an algorithm for assigning colors to multiple histogram values ​​substantially simultaneously using multiple parallel processing units. 134. The non-transitory computer-readable storage medium of Clause 133, wherein the plurality of parallel processing units includes a graphics processing unit. 135. The non-transitory computer-readable storage medium of Claim 134, wherein the graphics processing unit comprises more than 100 processing units, each processing unit configured to substantially simultaneously assign colors to histogram values ​​in the representation of the histogram. 136. The non-transitory computer-readable storage medium of any one of appendixes 134 and 135, wherein the graphics processing unit is located on a graphics processing card.

[0243] 137. The non-transitory computer-readable storage medium of any one of notes 134 to 136, wherein the graphics processing unit receives as input a one-dimensional array corresponding to a histogram. 138. The non-transitory computer-readable storage medium of any one of notes 134 to 137, wherein the graphics processing unit outputs a one-dimensional array corresponding to a representation of the histogram. 139. The non-transitory computer-readable storage medium of any one of appendices 134 to 138, wherein replicating each color corresponding to each histogram value in the representation of the histogram is not performed by a graphics processing unit. 140. The non-transitory computer-readable storage medium of any one of claims 107 to 139, wherein generating the representation of the histogram is performed substantially in real time. 141. The non-transitory computer-readable storage medium of any one of Clauses 107-140, further comprising an algorithm for determining whether a detector channel is saturated.

[0244] 142. The non-transitory computer-readable storage medium of Claim 141, wherein the algorithm for determining whether a detector channel is saturated includes an algorithm for determining whether a percentage of oversaturation of the detector channel is greater than a predetermined threshold, and the percentage of oversaturation of the detector channel includes a ratio of the counts of all particle measurements outside established histogram bins to the counts of all particle measurements. 143. The non-transitory computer-readable storage medium of any one of Clauses 141 or 142, further comprising an algorithm for displaying a saturation user interface corresponding to a saturated detector channel. 144. The non-transitory computer-readable storage medium of claim 143, wherein the saturation user interface includes displaying the percentage of oversaturation of the saturated detector channel. 145. The non-transitory computer-readable storage medium of any one of Appendix 143 and Appendix 144, wherein the saturation user interface includes prompts for adjusting settings of the saturation detector channels. 146. A non-transitory computer-readable storage medium having stored thereon instructions for generating a representation of a histogram for displaying a plurality of histograms, the instructions comprising: an algorithm for obtaining multiple histograms of cytometry data for the sample; an algorithm for generating a representation of a plurality of histograms according to instructions of a non-transitory computer-readable storage medium of any one of claims 107-145; and and an algorithm for using a representation of the multiple histograms to display the multiple histograms.

[0245] 147. The non-transitory computer-readable storage medium of claim 146, wherein each histogram of the plurality of histograms includes light measurements of cytometry data acquired by each channel of a plurality of channels of one or more detectors. 148. The non-transitory computer-readable storage medium of Clause 147, wherein each histogram of the plurality of histograms includes the same number of histogram bins. 149. The non-transitory computer-readable storage medium of Claim 148, wherein corresponding histogram bins of each histogram of the plurality of histograms have the same range of measurements associated therewith. 150. The non-transitory computer-readable storage medium of any one of clauses 146-149, wherein the algorithm for using a representation of multiple histograms to display multiple histograms includes an algorithm for using a representation of multiple histograms to display multiple histograms on a display device. 151. The non-transitory computer-readable storage medium of any one of Clauses 146-150, wherein the representation of the multiple histograms comprises a two-dimensional array.

[0246] 152. The non-transitory computer-readable storage medium of Claim 151, wherein a first dimension of the two-dimensional array corresponds to a histogram bin and a second dimension of the two-dimensional array corresponds to a histogram of the plurality of histograms. 153. The non-transitory computer-readable storage medium of any one of Clauses 146-152, wherein the algorithm for generating a representation of each histogram of the plurality of histograms includes an algorithm for generating representations of two or more histograms substantially simultaneously. 154. The non-transitory computer-readable storage medium of any one of appendices 146 to 153, wherein the algorithm for generating a representation of each histogram of the plurality of histograms is an algorithm for generating the representation of the plurality of histograms substantially in real time. 155. The non-transitory computer-readable storage medium of any one of Clauses 146-154, further comprising an algorithm for causing the display of a saturation user interface corresponding to a saturated detector channel. 156. The non-transitory computer-readable storage medium of claim 155, wherein the saturation user interface includes displaying the percentage of oversaturation of the saturated detector channel. 157. The non-transitory computer-readable storage medium of any one of appendix 155 or 156, wherein the saturation user interface includes prompts for adjusting settings of the saturation detector channels.

[0247] Although the foregoing invention has been described in some detail by way of illustration and example, for purposes of clarity of understanding, it will be readily apparent to those skilled in the art in light of the teachings of the invention that certain changes and modifications can be made thereto without departing from the spirit or scope of the appended claims.

[0248] Accordingly, the foregoing merely illustrates the principles of the present invention. It will be appreciated that those skilled in the art will be able to devise various configurations, not explicitly described or shown herein, which embody the principles of the present invention and are within its spirit and scope. Furthermore, all examples and conditional language recited herein are intended primarily to aid the reader in understanding the principles of the present invention and concepts provided by the inventors to further advance the art, and should not be construed as being limited to such specifically recited examples and conditions. Furthermore, all statements herein reciting principles, aspects, and embodiments of the present invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, such equivalents are intended to include both currently known equivalents and equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure. Furthermore, nothing disclosed herein is intended to be made available to the public, regardless of whether such disclosure is expressly recited in the claims.

[0249] Accordingly, the scope of the present invention is not intended to be limited to the exemplary embodiments shown and described herein. Rather, the scope and spirit of the present invention is embodied by the appended claims. For the purposes of the claims, 35 U.S.C. 112(f) or 35 U.S.C. 112(6) are expressly defined to apply to a limitation in a claim only if the exact phrase "means for" or the exact phrase "step for" appears at the beginning of such limitation in the claim. If such exact phrases are not used in a limitation in a claim, then neither 35 U.S.C. 112(f) nor 35 U.S.C. 112(6) applies.

[0250] CROSS-REFERENCE TO RELATED APPLICATIONS Pursuant to 35 U.S.C. §119(e), this application claims priority to the filing date of U.S. Provisional Patent Application No. 63 / 088,640, filed October 7, 2020, the entire disclosure of which is incorporated herein by reference.

Claims

1. 1. A method of generating a representation of histogram data for display, comprising: acquiring histogram data corresponding to cytometry data of the sample including measurements from illuminated particles in the sample flowing in the flow stream; generating a representation of the histogram data by encoding the histogram data; using a representation of the histogram data to display the histogram data; It contains The encoding step comprises: assigning colors to ranges of histogram values ​​in the representation of the histogram data and, in parallel, using the scaled histogram values ​​as indexes to look up corresponding colors in a first computer-implemented data structure representing a color palette of histogram colors; replicating each color corresponding to a range of histogram values ​​in the representation of the histogram data a predetermined number of times; Including, (i) the representation of the histogram data includes a second computer-implemented data structure configured to store colors associated with histogram values; (ii) each element of the histogram data representation corresponds to a pixel; method.

2. The method of claim 1 , wherein the cytometry data comprises light measurements from the illuminated particles in the sample.

3. the histogram data includes a plurality of bins; The method of claim 1 or 2, wherein the histogram values ​​are associated with histogram bins.

4. 4. The method of claim 1, wherein using the representation of the histogram data to display the histogram data comprises using the representation of the histogram data to display the histogram data on a display device.

5. The method according to any one of claims 1 to 4, wherein the predetermined number is the number of pixels displayed horizontally in the displayed histogram data.

6. 6. The method of claim 1, wherein the shape of the displayed histogram data is rectangular, the vertical axis of the displayed histogram data corresponds to the histogram bins, and the colors within the displayed histogram data correspond to the histogram values.

7. The method of any preceding claim, wherein the representation of the histogram data comprises an array.

8. determining a maximum value in a bin of said histogram data; using said maximum value to determine a scale factor for assigning colors to histogram values; The method of any one of claims 1 to 7, further comprising:

9. A method according to any preceding claim, wherein generating the representation of the histogram data is performed substantially in real time.

10. The method of any one of claims 1 to 9, further comprising determining whether a detector channel is saturated.

11. The method of any one of claims 1 to 10, further comprising adjusting settings for collecting the cytometry data based on the representation of the histogram data.

12. 1. A method for generating a representation of a plurality of histogram data for display, the method comprising: acquiring a plurality of histogram data corresponding to the cytometry data of the sample; generating a representation of a plurality of histogram data according to any one of claims 1 to 11; using a representation of the plurality of histogram data to display the plurality of histogram data; A method comprising:

13. 1. A system for generating a representation of histogram data for display, comprising: A general-purpose processor having an operably coupled memory having instructions stored therein, the instructions, when executed by the general-purpose processor, causing the general-purpose processor to: acquiring histogram data corresponding to cytometry data of the sample including measurements from illuminated particles in the sample flowing in the flow stream; transmitting the histogram data to a plurality of parallel processing units; receiving a representation of the histogram data from the plurality of parallel processing units, the representation including an encoding of a color corresponding to each histogram value; replicating a color encoding corresponding to a range of histogram values ​​in the representation of the histogram data a predetermined number of times, wherein (i) the representation of the histogram data includes a second computer-implemented data structure configured to store colors associated with histogram values, and (ii) each element of the representation of the histogram data corresponds to a pixel; and using the representation of the histogram data to display the histogram data on an output device. a plurality of parallel processing units operatively connected to the general-purpose processor and comprising an operatively coupled memory, the memory having instructions stored therein, the instructions which, when executed by the plurality of parallel processing units, cause the plurality of parallel processing units to: receiving the histogram data from the general-purpose processor; generating a representation of the histogram data by encoding the histogram data, said encoding including assigning color encodings to ranges of histogram values ​​in the representation of the histogram data and, in parallel, using the scaled histogram values ​​as indexes to look up corresponding colors in a first computer-implemented data structure representing a color palette of histogram colors; transmitting a representation of the histogram data to the general-purpose processor; and A system comprising:

14. 1. A non-transitory computer-readable storage medium having stored thereon instructions for generating a representation of histogram data for displaying the histogram data, the non-transitory computer-readable storage medium comprising: The instruction: an algorithm for acquiring histogram data corresponding to cytometry data for the sample including measurements from illuminated particles in the sample flowing in the flow stream; an algorithm for generating a representation of the histogram data by encoding the histogram data; an algorithm for using the representation of the histogram data to display the histogram data; and It contains The encoding step comprises: assigning colors to ranges of histogram values ​​in the representation of the histogram data and, in parallel, using the scaled histogram values ​​as indexes to look up corresponding colors in a first computer-implemented data structure representing a color palette of histogram colors; replicating each color corresponding to a range of histogram values ​​in the representation of the histogram data a predetermined number of times; Including, (i) the representation of the histogram data includes a second computer-implemented data structure configured to store colors associated with histogram values; (ii) each element of the histogram data representation corresponds to a pixel; A non-transitory computer-readable storage medium.

15. 1. A non-transitory computer-readable storage medium having stored thereon instructions for generating a representation of a plurality of histogram data for display, the representation comprising: The instruction: an algorithm for obtaining a plurality of histogram data corresponding to the cytometry data of the sample; an algorithm for generating the plurality of histogram data representations according to the instructions of the non-transitory computer-readable storage medium of claim 14; an algorithm for using a representation of the plurality of histogram data to display the plurality of histogram data; 1. A non-transitory computer-readable storage medium comprising:

Citation Information

Patent Citations

  • Flowsight meter and flowsightmetry method

    JP2007046947A

  • Fine particle analyzer and data display method

    JP2011232254A

  • Interactive Tree Plot for Flow Cytometry Data

    US20100070904A1