Flow cytometry waveform processing
By introducing GPU into flow cytometry, dynamic threshold adjustment and real-time update of digital waveform data is solved, and the problem of difficulty in dynamic adjustment of thresholds and extracting biological related information in the prior art is solved, and the flexibility and efficiency of data analysis are improved.
Patent Information
- Application Number
- CN202380068700.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-02-06
- Filing Date
- 2023-09-26
- Publication Date
- 2025-05-09
AI Technical Summary
When extracting particle event data, existing flow cytometers have difficulty adjusting the threshold dynamically, resulting in the inability to update the graphical chart in real time without re-running the experiment, and the inability to effectively extract biologically relevant information except height, width and area.
A graphics processing unit (GPU) is introduced as a component of the waveform analysis device. By applying the digitized waveform data, the event data of particles can be extracted, and the post-processing steps are thresholded to achieve dynamic adjustment and real-time updates.
The ability to dynamically adjust thresholds and update graphs in real time without re-running the experiments, and the ability to extract biologically relevant information except height, width and area is improved, improving the flexibility and efficiency of data analysis.
Smart Images

Figure CN119968557A_ABST
Abstract
Description
[0001] This application was filed as a PCT international patent application on September 26, 2023, and claims the benefit and priority of U.S. Provisional Patent Application No. 63 / 410,984 filed on September 28, 2022 and U.S. Provisional Patent Application No. 63 / 483,396 filed on February 6, 2023, the entire disclosure of which is incorporated herein by reference in its entirety. Background Art
[0002] Flow cytometry is a technique for detecting and analyzing the chemical and physical properties of cells or particles in a fluid sample. Flow cytometers can be used to evaluate cells from blood, bone marrow, tumors, and other body fluids. Typically, the sample is passed through a fluid nozzle that aligns the particles in a single file within a sheath fluid. As the particles pass through in a single file, a laser beam illuminates the particles to generate radiation light including forward scattered light, side scattered light, and fluorescence. The radiation light can then be detected and analyzed to determine one or more characteristics of the particles. Summary of the invention
[0003] In general, the present disclosure relates to analyzing particles using flow cytometry. In one possible configuration, one or more adjustable threshold voltages are applied to digitized waveform data to extract event data from particles that pass through an interrogation location of a flow cytometer without re-passing the interrogation location.
[0004] One aspect relates to a flow cytometer system configured to direct a fluid stream of particles through an interrogation location, the flow cytometer system comprising: a laser configured to emit light toward the interrogation location to generate light signals from the particles; one or more detectors configured to convert the light signals into waveform data; a waveform acquisition device configured to digitize the waveform data; and a graphics processing unit configured to apply one or more adjustable threshold voltages to the digitized waveform data to extract event data from the particles.
[0005] Another aspect relates to a method for analyzing particles flowing through a flow cytometer, the method comprising: directing a fluid flow of particles through an interrogation location; emitting light toward the interrogation location to generate optical signals from the particles; converting the optical signals into analog waveform data; continuously digitizing the analog waveform data, the analog waveform data including the time between particles when the particles are not interrogated by a laser; and applying one or more adjustable threshold voltages to the digitized waveform data to extract event data from the particles.
[0006] Another aspect relates to a non-transitory computer-readable medium containing program instructions that, when executed by a processor, cause the processor to: digitize a voltage waveform generated when a particle flows through an interrogation location; store the digitized voltage waveform; apply a first threshold and a second threshold to the digitized voltage waveform; and generate event data comprising a sequence of digital values from the digitized voltage waveform without causing the particle to re-pass the interrogation location, wherein the event data comprising the sequence of digital values is generated by causing each digital value in the sequence of digital values to be greater than the first threshold and less than the second threshold.
[0007] Another aspect relates to a method of operating a particle analyzer, the method comprising: passing a particle through an interrogation location; illuminating the particle with light when the particle passes the interrogation location; detecting a light signal from the particle; generating digitized waveform data from the light signal; and storing the digitized waveform data in a persistent storage device.
[0008] Another aspect relates to a method of post-processing flow cytometry data, the method comprising: accessing digitized waveform data from a computer-readable storage device after interrogation of particles in a sample is completed by a flow cytometer; determining a threshold voltage; applying the threshold voltage to the digitized waveform data; and characterizing the particles in the sample after applying the threshold voltage.
[0009] Another aspect relates to a flow cytometer system configured to direct a fluid flow of particles through an interrogation location. The flow cytometer system includes: a laser configured to emit light toward the interrogation location to generate an optical signal from the particles; one or more detectors configured to convert the optical signal into waveform data; a waveform acquisition device configured to digitize the waveform data; a graphics processing unit configured to apply one or more adjustable threshold voltages to the digitized waveform data to extract event data from the particles; and a graphical user interface for displaying the one or more adjustable threshold voltages relative to the digitized waveform data; wherein, in response to a change in the one or more adjustable threshold voltages, the graphics processing unit is configured to generate updated event data based on the change in the one or more adjustable threshold voltages without causing the particles to re-pass through the interrogation location.
[0010] Various additional aspects will be described in the following description. These aspects may relate to individual features as well as to combinations of features. It should be understood that both the foregoing general description and the following detailed description are exemplary and illustrative only and do not limit the broad inventive concepts on which the embodiments disclosed herein are based. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The following drawings, which form a part of this application, are illustrative of the described technology and are not meant to limit the scope of the present disclosure in any way.
[0012] Figure 1 is a schematic block diagram illustrating an example of a flow cytometer system.
[0013] Figure 2A Shown in Figure 1 Particles entering the laser beam at the interrogation position in the flow cytometer system.
[0014] Figure 2B Shown in Figure 1 The interrogation position in the flow cytometer system is where particles pass through the center region of the laser beam.
[0015] Figure 2C Shown in Figure 1 Particles exiting the laser beam at the interrogation position in the flow cytometer system.
[0016] Figure 3 It shows that it can be Figure 1 Example of waveform data generated by a flow cytometer system plotted against a threshold.
[0017] Figure 4 yes Figure 1 Block diagram of the waveform analysis equipment of a flow cytometer system.
[0018] Figure 5 It shows that it can be Figure 4 An example graphical user interface (GUI) generated by a waveform analysis device.
[0019] Figure 6 It shows that it can be Figure 4 An example waveform display window generated by a waveform analysis device of FIG. 1 , the waveform display window graphically displaying unthresholded waveform data.
[0020] Figure 7 Shown is applied to Figure 6 Example of the high threshold of the waveform data in the Waveform Display window.
[0021] Figure 8 Shown is applied to Figure 6 Example of the middle threshold of the waveform data in the waveform display window.
[0022] Fig. 9 Shown is applied to Figure 6 Example of the low threshold of the waveform data in the Waveform Display window.
[0023] Fig.10 Shown is applied to Figure 6 Example of multiple thresholds for waveform data in the Waveform Display window.
[0024] Fig.11 Shown is applied to Figure 6Example of nonlinear thresholding of waveform data in the Waveform Display window.
[0025] Fig.12 Shown is applied to Figure 6 Example of event-specific thresholds on waveform data in the Waveform Display window.
[0026] Fig.13 yes Figure 1 A block diagram of another example of a flow cytometer system.
[0027] Fig.14 An example of a waveform display window is shown, which graphically displays the waveform displayed by Fig.13 Waveform graph of data collected by the flow cytometer system.
[0028] Fig.15 It shows the analysis Figure 1 Figure 2 is a flow chart showing an example of a particle method for a flow cytometry system.
[0029] Fig.16 It shows the analysis Figure 1 Flow chart of another example of a particle method for a flow cytometry system.
[0030] Fig.17 It shows that it can be used to implement Figure 1 An exemplary architecture of a computing device for aspects of a flow cytometry system.
[0031] Fig.18 It shows that it can be Figure 4 Another example of a graphical user interface (GUI) generated by a waveform analysis device.
[0032] Fig.19 Schematically shows Figure 1 In another example of a flow cytometer system, the flow cytometer system includes a host random access memory (RAM).
[0033] Fig. 20 Schematically illustrating updating based on adjustment of the upper threshold slider or the lower threshold slider Fig.18 An example of a GUI method.
[0034] Fig.21 It schematically shows that Figure 4 An example of a method of extracting waveform data performed by a waveform analysis device. DETAILED DESCRIPTION
[0035] Various embodiments will be described in detail with reference to the accompanying drawings, wherein the same reference numerals represent the same parts and components throughout the several views. Reference to the various embodiments does not limit the scope of the appended claims. In addition, any examples set forth in this specification are not intended to be limiting, but merely set forth some of the many possible embodiments of the appended claims.
[0036] Figure 1 is a schematic block diagram illustrating an example of a flow cytometer system 100. In general, a flow cytometer system 100 can be used to measure and analyze physical and chemical properties of a particle sample or a cell sample. For example, a flow cytometer system 100 can collect data from millions of cells in a few minutes to display to a researcher or clinician in a variety of formats. Some example applications implemented on a flow cytometer system 100 may include: phenotyping to identify and count specific cell types within a population; analyzing DNA or RNA content; determining the presence of antigens on the cell surface or within the cell; and assessing cell health status.
[0037] The flow cytometer system 100 generally includes three major component subsystems: a fluidic system 110, an optical system 120, and an electronic system 130. The fluidic system 110 includes a nozzle 112 that receives a sample containing particles or cells suspended in a fluid. The nozzle 112 creates and ejects a fluid stream 114 of particles arranged in a single file line. Each particle passes through one or more beams generated by the laser 102. The point where a particle intersects the beam is called an interrogation position 116.
[0038] The optical system 120 includes the laser 102, the optical element 122, and the detector 124. At the interrogation location 116, the light from the laser 102 strikes the particle and scatters. The optical element 122 directs the scattered light toward the detector 124. The detector 124 may include: a forward scatter (FSC) detector for measuring scattering along the path of the laser 102; a side scatter (SSC) detector for measuring scattering at a ninety degree angle relative to the laser 102; and / or one or more fluorescence detectors (e.g., FL1, FL2, and FL3) for measuring the intensity of emitted fluorescence at different wavelengths of light.
[0039] Typically, the FSC intensity is proportional to the size or diameter of the particle due to the light diffraction around the particle. Therefore, FSC can be used to distinguish particles by size, on the other hand, from the light refracted or reflected by the internal structure of the particle, and therefore can provide information about the internal complexity or granularity of the particle. By adding fluorescent markers to the sample, different fluorescent signals / channels (e.g., green, orange, and red) can be analyzed for the functional characteristics of the cell. For example, due to the presence of CD3 binding sites in T cells, samples containing T cells can be "stained" with anti-CD3 antibodies conjugated to fluorescent molecules. When these cells pass through the interrogation position 116, the laser excites the fluorescent label or fluorescent dye to emit photons at a wavelength that can be detected by the fluorescence detector. Therefore, the detector 124 can measure multiple parameters simultaneously, and enables the particles to be classified by the function of the particles based on the wavelength of the detected light.
[0040] Electronic system 130 includes waveform acquisition device 140 and waveform analysis device 150. Waveform acquisition device 140 is communicatively coupled to detector 124 and is configured to receive analog waveform data 126 generated by detector 124. Waveform acquisition device 140 includes an analog-to-digital converter (ADC) 142 configured to digitize waveform data.
[0041] The waveform analysis device 150 is configured to receive digital waveform data and display it to a user of the flow cytometer system 100. In some embodiments, the waveform analysis device 150 includes a computing device communicatively coupled to the flow cytometer 101 via a network, and the flow cytometer 101 may include the fluidics system 110, the optics system 120, and the waveform acquisition device 140. In other embodiments, the waveform analysis device 150 is integrated with the flow cytometer 101.
[0042] Current flow cytometers use field programmable gate arrays (FPGAs) in waveform acquisition devices 140 to obtain information about individual particles passing through the interrogation position. In current flow cytometers, waveform acquisition devices 140 use a single threshold to determine when the output of the detector begins to be converted from analog to digital. Only a single threshold can be used for a single run of a sample through a current flow cytometer. The threshold is a constant value and can be referred to as a voltage threshold. Therefore, if the detector output exceeds the voltage value of the threshold or when the detector output exceeds the voltage value of the threshold, digitization begins and the digital value is sent to the FPGA. When the waveform data is digitized, the FPGA calculates the height, width, and area of each pulse. Other data related to the waveform (including data that does not exceed the voltage threshold) will not be captured, stored, or otherwise available for analysis. In addition, if the user wants to adjust the threshold, the sample must be collected from the waste container and the experiment must be rerun with the new threshold, which results in resource and time costs.
[0043] To address the above problems, the flow cytometer system 100 adds a graphics processing unit (GPU) 152 as a component of the waveform analysis device 150. The GPU 152 is configured to process a continuous digital stream generated by the waveform acquisition device 140 and provided to the waveform analysis device 150. The digital stream is continuous because the waveform acquisition device 140 does not threshold the waveform data generated by the detector 124. The FPGA can also be removed or excluded from the waveform acquisition device 140. Alternatively, during the experiment, the waveform acquisition device 140 continuously digitizes the analog waveform data 126 at a high rate (e.g., 1 GHz) without thresholding. As an illustrative example, the waveform acquisition device 140 can have a sampling rate of about 1 GHz, which can generate a digital waveform file that is about 1000 times the digital waveform file typically generated by the FPGA in the current flow cytometer for generating area values, height values, and width values. In some examples, the waveform acquisition device 140 is configured to continuously digitize the analog waveform data, which includes the time between particles when the particles are not interrogated by the laser in the interrogation position 116.
[0044] Thus, the waveform analysis device 150 can receive a digitized version of the waveform data with added data points, and the waveform data for the experiment is not thresholded and is available for processing by the GPU 152 as a whole. In addition to having the ability to process large waveform data streams or waveform data files, the GPU 152 enables thresholding of the waveform at a post-processing step rather than at the waveform acquisition step. This in turn provides several technical benefits, including the ability to dynamically adjust thresholds and update graphical charts in real time without rerunning the experiment. The GPU 152 can also measure and extract biologically relevant information other than the three parameters of height, width and area that present the waveform data. Further details of operation and advantages are discussed below.
[0045] Figure 1 The flow cytometer system 100 shown in FIG. 1 includes the elements shown and described for discussion purposes, and it should be understood that there may be many variations in the components and functions. The optical element 122 may include a series of filters, dichroic mirrors, and / or beam splitters to select different wavelengths of light and provide the wavelengths to appropriate detectors. The detector 124 may include, for example, a photomultiplier tube (PMT) or an avalanche photodiode (APD).
[0046] FIG. 2A to FIG. 2C Waveform data generated by detection of a particle 201 passing through a laser beam 202 at an interrogation location 116 in a flow cytometer system 100 is shown. When a particle 201 passes through the interrogation location 116 of the light source, a pulse is generated in one or more of the detectors 124. Figure 2AParticle 201 is shown entering laser beam 202. When particle 201 begins to intersect laser beam 202, it begins to generate scattered light and fluorescence signals. Detector 124 generates a current or voltage proportional to the number of photons that strike the photocathode. Therefore, as current flows in detector 124, the output of detector 124 begins to rise as shown in graph 212.
[0047] Figure 2B The particle 201 is shown passing through the center region of the laser beam 202 at the interrogation location 116. As the particle 201 continues to move down into the center of the laser beam 202, the particle 201 is fully illuminated. Since the photon density of the laser beam 202 is highest in the center, the maximum amount of light signal is generated. Therefore, as shown in the graph 232, the current or voltage of the detector 124 reaches a peak.
[0048] Figure 2C A particle 201 is shown exiting the laser beam 202 at the interrogation location 116. When the particle exits the laser beam 202, the current or voltage output of the detector 124 returns to the baseline as shown in the graph 252. This generation of a pulse is called an event. The height is the maximum current / voltage output by the detector 124, the width is the time interval during which the pulse occurs, and the area is the integral of the pulse. In general, the height and area correspond to the signal intensity, and the width corresponds to the time that the particle is irradiated by the laser beam 202. Therefore, when a pulse is generated, the pulse can be quantified by the height, width and area. This information can be used to distinguish between particles, and the fluorescent signal can be displayed on a graph, analyzed and interpreted.
[0049] Figure 3 An example of waveform data 300 that may be generated by the flow cytometer system 100 and plotted relative to a threshold 310 is shown. In this example, the threshold 310 is a single constant threshold voltage. As described above, in conventional polychromatic and spectral flow cytometry, the threshold 310 is used to specify when digitization of the detector output (e.g., analog waveform data 126) begins. That is, when the waveform data 300 advances beyond the threshold 310, the waveform acquisition device begins calculating the height, width, and area of each pulse 301 to 303 that is above the threshold 310. In the prior art, waveform data 300 that is below the threshold 310 is discarded.
[0050] The problem with the above approach is that the threshold 310 may not be set appropriately for the entire voltage waveform for the purpose of extracting event data. For example, the threshold 310 of this example may be set too high to accurately analyze cells that generate pulses similar to the pulse 301 of the waveform data 300. On the other hand, if the threshold 310 is set too low, the overall signal-to-noise ratio of the waveform data 300 may be compromised. Furthermore, in conventional flow cytometers, a single threshold must be set prior to data acquisition, thereby irreversibly discarding potentially relevant events.
[0051] Figure 4 is a block diagram of an example of a waveform analysis device 150. The waveform analysis device 150 can receive, store, and display waveform data that has been continuously sampled without being thresholded upstream at the waveform acquisition device 140. The waveform analysis device 150 can include an interface 410 for receiving digitized raw waveform data 432, a persistent storage device 430 for storing the digitized raw waveform data 432, and a graphical user interface (GUI) 420 for displaying the digitized raw waveform data 432. The persistent storage device 430 can also store a plurality of dynamic threshold values 434 that allow nonlinear thresholding and real-time updating and display of applied threshold values, as further described below. The persistent storage device 430 can include system memory such as random access memory (RAM) and / or long-term non-volatile memory such as a hard drive.
[0052] The waveform analysis device 150 may also include a cytometry analysis application 450, which includes a software application or a set of related software applications configured to instruct the GPU 152 to process the digitized raw waveform data 432. The cytometry analysis application 450 can be executed on one or more processors (not shown) to provide other functions described herein in conjunction with the GPU 152, such as receiving user input via the GUI 420. One or more components of the waveform analysis device 150 may reside in a cloud computing application in a network distributed system. In this regard, the waveform analysis device 150 can be any of a variety of computing devices, including but not limited to a personal computing device, a server computing device, or a distributed computing device.
[0053] Figure 5An example graphical user interface (GUI) 500 that may be generated by the waveform analysis device 150 is shown. The GUI 500 includes a waveform display window 502 for displaying graphs and charts of waveform data, a parameter window 504 for selecting parameters 505 displayed in the waveform display window 501, and a data set window 506 for selecting a file or data set 507 to be processed and displayed. A user may select a data set 507 stored in the persistent storage 430 of the waveform analysis device 150 and select a parameter 505 to display for the data set 507. The parameters in this context are the measurement results from a particular detector 124 of the flow cytometer system 100. The parameters may be used to generate graphs and charts, including waveform graphs, histograms, scatter plots, density plots, comparison plots, etc. In this example, the waveform display window 502 displays a plurality of scatter plots 530 and a forward scatter waveform 520 related to side scatter and fluorescence intensity.
[0054] GUI 500 includes an adjustable threshold element 522 that can be selected by a user to adjust threshold 524 to a higher or lower value. For example, adjustable threshold element 522 can be moved or dragged along a scale as indicated by a double arrow to adjust threshold 524. Each time threshold 524 is reset or updated in GUI 500, GPU 152 applies the new threshold to the waveform data. GPU 152 extracts measurements based on the new threshold and updates each of the graphs and charts displayed in waveform display window 501 in real time or near real time. Alternatively or additionally, GUI 500 can include a threshold optimization element 526 that can be selected to automatically determine a threshold that maximizes the output of relevant data for a particular waveform data set.
[0055] Figure 6 An example of a waveform display window 600 graphically displaying unthresholded waveform data 610 is shown. That is, compared to the display window of the previous cytometer analysis device that displays the calculated height value, width value, and area value (i.e., event data) obtained from the FPGA, the waveform analysis device 150 described herein displays the waveform data 610 in its entirety and in digital form. By displaying the waveform data 610 in this form, the following technical benefits are provided: the user can visually see the characteristics of the pulse and noise to determine the appropriate threshold levels for measuring the height, width, and area during post-processing, rather than calculating the parameters during acquisition.
[0056] Figure 7An example of a high threshold 700 applied to waveform data 610 in a waveform display window 600 is shown. When the high threshold 700 begins to intersect the highest pulse peak of the waveform data 610, the GPU 152 can extract the height, width, and area, and update the graphs and charts in the waveform display window 600 in real time. In this example, the waveform display window 600 includes a histogram 710 and a scatter plot 720, each of which displays fewer extracted measurements due to the minimal amount of intersection between the high threshold 700 and the waveform data 610.
[0057] Figure 8 An example of an intermediate threshold 800 applied to the waveform data 610 in the waveform display window 600 is shown. The intermediate threshold 800 intersects an increased number of pulses in the waveform data 610 compared to the high threshold 700. Thus, the histogram 710 is updated in real time to display additional bars indicating the count of a particular type of cell detected. Similarly, the scatter plot 720 is updated in real time to display additional points reflecting the detected relative fluorescence intensity of the additional particles measured and the two parameters thereof plotted on the two axes of the scatter plot.
[0058] Fig. 9 An example of a low threshold 900 applied to the waveform data 610 in the waveform display window 600 is shown. When the threshold is lowered and the histogram 710 and the scatter plot 720 are updated accordingly, the GPU 152 continues to measure and extract event data from the waveform data 610 in real time. In this example, the low threshold 900 can be set to a value just above the noise 910 visible in the waveform data 610. Therefore, the noise 910 can be filtered out based on the visual features of the waveform data 610. In some embodiments, the GUI 500 allows the user to apply the logical complement of the threshold. For example, suppose that the researcher is interested in studying the noise 910 in the waveform data 610 of the cytometer experiment. In such a case, the researcher can set the low threshold 900 to extract data with voltage values below the low threshold 900 instead of above the low threshold 900.
[0059] Fig.10An example of multiple thresholds applied to the waveform data 610 in the waveform display window 600 is shown. For example, when identifying extracellular vesicles (EVs), which are cells that are generally larger than noise and smaller than other particles of the sample, the GUI 500 enables the application and adjustment of a first threshold 1001 and a second threshold 1002 to extract event data in the region between the thresholds. That is, the region can be defined as a digital value in the waveform data 610 that is below the first threshold 1001 and above the second threshold 1002. In some examples, the waveform analysis device 150 is configured to: determine a first threshold voltage of a threshold function that includes a peak value that is smaller than the maximum pulse group of the waveform data 610, determine a second threshold voltage of another threshold function that includes noise that is larger than the waveform data 610, and analyze the waveform data 610 relative to the first threshold voltage and the second threshold voltage to extract event data. This method can be used to detect and analyze nanoparticles, such as EVs, in a sample.
[0060] Fig.11 An example of a nonlinear threshold 1100 applied to the waveform data 610 in the waveform display window 600 is shown. Since thresholding is applied by the GPU 152 during post-processing, one or more nonlinear thresholds 1100 may be applied to the waveform data 610. In some embodiments, the threshold is non-constant. The nonlinear threshold 1100 is an example of one or more thresholds that are non-constant. In this example, the nonlinear threshold 1100 is a sawtooth signal, while other nonlinear or non-constant thresholds may include any number of functions, such as a sine function, a step function, etc. In some embodiments, the GPU 152 automatically determines the threshold function based on the curvature of the pulses of the waveform data 610. For example, the nonlinear threshold 1100 may include a first-order derivative or a second-order derivative of one or more pulses in the waveform data 610. In some embodiments, the nonlinear threshold 1100 may be determined for each pulse to generate a moving function for the waveform data 610. Then, the GPU 152 may extract the value in the area below the nonlinear threshold 1100. In some embodiments, the threshold may be applied to the waveform data in a domain other than time (e.g., frequency). For example, GPU 152 may apply the threshold as a fast Fourier transform (FFT) applied to waveform data 610 to generate vector valued data for each of the particles.
[0061] Fig.12 12 shows examples of event-specific thresholds 1201 to 1203 applied to waveform data 610 in waveform display window 600. In some embodiments, cytometry analysis application 450 (see Figure 4)Thresholds are determined on a per-cell basis. For example, a threshold value may be assigned to each pulse in the waveform data 610 that maximizes the data output for each particle while minimizing noise. Event-specific thresholds 1201 to 1203 may be horizontal thresholds, tilt thresholds, and / or nonlinear thresholds that are each applied to a specific event within the waveform data 610 at a discrete time period. For example, a user or the cytometry analysis application 450 may determine to filter out data points 1212 of a specific pulse 1210 of the waveform data 610. The event-specific threshold 1203 of the pulse 1210 may be adjusted by adjusting the right end at the upward tilt so that the data point 1212 is not used for analysis or plotting. The adjustment may be performed by the user selecting and dragging the right end of the event-specific threshold 1203, or automatically adjusted by an algorithm executed by the cytometry analysis application 450.
[0062] Fig.13 1 is a block diagram of another example of a flow cytometer system 100. In addition to the digitized waveform data output by the detector 124, the waveform analysis device 150 of some embodiments can also collect, analyze, and display digitized data from other sensors in the flow cytometer system 100, including one or more fluid sensors 1302 and / or one or more laser power sensors 1304. The fluid sensor 1302 can output a measurement of the sheath pressure of the nozzle 112 when a particle is ejected. The laser power sensor 1304 can output a measurement indicating a change in power or intensity in the output of the laser 102 when a particle is interrogated. In some embodiments, the analog-to-digital converter 142 of the waveform acquisition device 140 digitizes the measurement before receiving it at the waveform analysis device 150.
[0063] Fig.14 An example of a waveform display window 600 is shown, which graphically displays the waveform displayed by Fig.13 A waveform graph of data collected by a flow cytometer system 100 of the present invention is shown. In this example, the waveform graph includes forward scattering waveform data 1410 output by the detector 124 of the optical system 120, sheath pressure waveform data 1420 output by the fluid sensor 1302, and laser power waveform data 1430 output by the laser power sensor 1304. The waveform graph can be displayed aligned with respect to time so that a user can visually observe multiple measurement results corresponding to specific particles in an experiment. The sheath pressure waveform data 1420 and the laser power waveform data 1430 provided by the fluid sensor 1302 and the laser power sensor 1304, respectively, can be used, for example, to set and adjust one or more thresholds applied to the forward scattering waveform data 1410. The measurement data can also be used to standardize the instrument of the flow cytometer system 100.
[0064] Fig.151 is a flow chart illustrating an example of a method 1500 for analyzing particles in a flow cytometer system 100. In step 1502, a fluid stream of particles is directed through an interrogation location 116. In step 1504, a laser is directed to the interrogation location 116 to generate an emission light signal from the particles. In step 1506, the emission light signal is converted into raw / analog waveform data. In step 1508, the analog data is continuously digitized. In step 1510, the GPU 152 applies one or more threshold voltages to the digitized waveform data to extract event data of the particles. In some examples, the thresholds may be applied after the waveform data is stored in the persistent storage device 430 of the waveform analysis device 150. In step 1512, when the one or more threshold voltages are applied to the digitized waveform data, the GUI 420 is directed to update the display of the extracted event data of the particles. One or more linear, logarithmic, and / or logical display techniques may be applied to format the display of the event data. In some examples, statistical information is calculated for each event data. For example, GPU 152 may process the event data to calculate one or both of the skewness and kurtosis of each of the particles. Steps 1510 and 1512 may be repeated for the digitized waveform data in response to changes in thresholds or other settings without reprocessing and re-interrogating the sample by steps 1502, 1504, 1506, and 1508.
[0065] Fig.16 1 is a flow chart illustrating another example of a method 1600 for analyzing particles in a flow cytometer system 100. In step 1602, a flow cytometry experiment is initiated. In step 1604, continuous digitization of a voltage waveform output by a detector 124 of the flow cytometer 101 is initiated. In step 1606, a first voltage threshold is determined to be applied to the digitized voltage waveform. In step 1608, the GPU 152 analyzes the digitized voltage waveform using the first voltage threshold. In step 1610, a second voltage threshold is determined to be applied to the digitized voltage waveform. In step 1612, without rerunning the experiment, the GPU 152 analyzes the digitized voltage waveform using the second voltage threshold.
[0066] Fig.17 An exemplary architecture of a computing device 1830 that can be used to implement aspects of the flow cytometer system 100 including the waveform analysis device 150 is shown. The computing device 1830 can be used to execute the operating systems, applications, and software modules (including software engines) described herein. Examples of computing devices suitable for the computing device 1830 include server computers, desktop computers, laptop computers, tablet computers, mobile computing devices (e.g., smartphones), or other devices configured to process digital instructions.
[0067] The computing device 1830 includes at least one processing device 1832, such as a central processing unit (CPU). A variety of processing devices are available. The computing device 1830 also includes a system memory 1838 and a system bus 1836 that couples various system components including the system memory 1838 to the at least one processing device 1832. The system bus 1836 is one of any number of types of bus structures using any of a variety of bus architectures, including a memory bus or memory controller, a peripheral bus, and a local bus.
[0068] The system memory 1838 may include a read-only memory (ROM) 1886 and a random access memory (RAM) 1840. A basic input / output system (BIOS) 1842 containing basic routines for transferring information within the computing device 1830, such as during startup, may be stored in the system memory 1838. The waveform analysis device 150 may have a large memory capacity, such as equal to or greater than one terabyte of RAM. The RAM 1840 may be used by the GPU 152 to load and subsequently analyze waveform data (e.g., raw waveform data stored in a raw waveform data file that may include digitized waveform data).
[0069] The computing device 1830 may also include an auxiliary storage device 1844, such as a hard drive, for storing digital data. The auxiliary storage device 1844 is connected to the system bus 1836 via an auxiliary storage interface 1846. The auxiliary storage device 1844 and the associated computer-readable medium provide non-volatile storage of computer-readable instructions (including applications and program modules), data structures, and other data for the computing device 1830. Although the examples described herein use a hard drive as an auxiliary storage device, other types of computer-readable storage media are used in other embodiments. Examples of these other types of computer-readable storage media include RAM 1840 and / or ROM 1886. Some examples include non-transient media. In addition, such computer-readable storage media may include local storage or cloud-based storage.
[0070] The computing device 1830 typically includes at least some form of computer readable media. Computer readable media includes any available media that can be accessed by the computing device 1830. By way of example, computer readable media include computer readable storage media and computer readable communication media.
[0071] Computer-readable storage media include volatile and nonvolatile, removable and non-removable media implemented in any device configured to store information such as computer-readable instructions, data structures, program modules or other data. Computer-readable storage media include, but are not limited to, random access memory, read-only memory, electrically erasable programmable read-only memory, flash memory or other memory technology, or any other medium that can be used to store the desired information and can be accessed by the computing device 1830.
[0072] Computer-readable communication media typically embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transmission mechanism, and include any information delivery media. The term "modulated data signal" refers to a signal that sets or changes one or more of its characteristics in a manner that encodes information in the signal. By way of example, computer-readable communication media include: wired media, such as a wired network or a direct wired connection; and wireless media, such as acoustic media, radio frequency media, infrared media, and other wireless media. Any combination of the above may also be included within the scope of computer-readable media.
[0073] A number of program modules may be stored in the secondary storage device 1844 or in the system memory 1838 including an operating system 1848, application programs 1850, program modules 1852 (eg, software engines), and program data 1854. The computing device 1830 may utilize any suitable operating system, such as Microsoft Windows TM , Google Chrome TM , Apple OS, and any other operating system suitable for a computing device.
[0074] A user provides input to the computing device 1830 through one or more input devices 1856. Examples of input devices 1856 include a keyboard 1858, a mouse 1860, a microphone 1862, and a touch sensor 1864 (e.g., a touchpad or touch-sensitive display). Additional types of input devices 1856 are contemplated. The input devices 1856 are often connected to at least one processing device 1832 through an input / output interface 1866 coupled to the system bus 1836. These input devices 1856 can be connected through any number of input / output interfaces (e.g., a parallel port, a serial port, a game port, or a universal serial bus). Wireless communication between the input device and the input / output interface 1866 is also possible, and in some possible implementations, includes infrared, Wireless technology, 802.11a / b / g / n, cellular or other radio frequency communications systems.
[0075] A display device 1868 (e.g., a monitor, liquid crystal display device, projector, or touch-sensitive display device) may also be connected to the system bus 1836 via an interface (e.g., a video adapter 1870). In addition to the display device 1868, the computing device 1830 may also include various other peripherals (not shown), such as speakers or a printer.
[0076] When used in a local area networking environment or a wide area networking environment (e.g., the Internet), the computing device 1830 is typically connected to the network via a network interface 1872 (e.g., an Ethernet interface). Other possible implementations use other communication devices. For example, some implementations of the computing device 1830 include a modem for communicating across a network.
[0077] Computing device 1830 is an example of a programmable electronic device, which may include one or more such computing devices, and when multiple computing devices are included, such computing devices may be coupled together with a suitable data communication network to jointly perform various functions, methods, or operations disclosed herein.
[0078] Fig.18 1800 that may be generated by the waveform analysis device 150. The GUI 1800 includes a waveform graph 1802, an upper threshold slider 1804, and a lower threshold slider 1806. Fig.18 In the example shown in , the upper threshold slider 1804 is positioned at 1000 amplitude units, and the lower threshold slider 1806 is positioned at 500 amplitude units. In addition, the GUI 180 includes a first scatter plot 1810 and a second scatter plot 1812 that display events extracted from the waveform graph 1802 based on the positioning of the upper threshold slider 1804 and the lower threshold slider 1806.
[0079] The GUI 1800 also shows that a mouse pointer 1808 can be controlled by operating a mouse 1860 to move around the GUI 1800 and select one or more selectable icons on the GUI 1800. Additional examples of user interfaces on the waveform analysis device 150 are contemplated, such that the mouse pointer 1808 and the mouse 1860 are provided by way of illustrative example. In this example, a user of the waveform analysis device 150 can move the mouse 1860 to hover over the upper threshold slider 1804, and can click the mouse 1860 to select the upper threshold slider 1804. When the upper threshold slider 1804 is selected, the user can move the upper threshold slider 1804 up or down to adjust the value of the upper threshold slider 1804. Similarly, the user of the waveform analysis device 150 can move the mouse 1860 to hover over the lower threshold slider 1806, and can click the mouse 1860 to select the lower threshold slider 1806. When the lower threshold slider 1806 is selected, the user can move the lower threshold slider 1806 up or down to adjust the value of the lower threshold slider 1806.
[0080] As the upper threshold slider 1804 or the lower threshold slider 1806 is adjusted, the events extracted from the waveform graph 1802 displayed in the first scatter plot 1810 and the second scatter plot 1812 are also adjusted. As discussed above, the waveform acquisition device 140 continuously digitizes the output from the detector 124 regardless of whether the cell is currently being interrogated by the laser 102. This generates a data stream that is approximately 1000 times (e.g., 1 GHz sampling rate) larger than prior art waveform acquisition devices that use a single threshold to determine when the output from the detector is converted from analog to digital.
[0081] Table 1 summarizes the performance of updating the GUI 1800 based on the adjustment of the upper threshold slider 1804 or the lower threshold slider 1806. In Table 1, the first column includes the number of data points (in millions) in each of the four waveforms. The four waveforms include a forward scattering waveform, a side scattering waveform, and a fluorescence waveform, which is generated by the energy emitted by the fluorescent dye when stimulated by the laser 102. The second column in Table 1 includes the runtime for updating the GUI 1800 when the data points of the four waveforms are processed by a single central processing unit (CPU) core, the third column in Table 1 includes the runtime for updating the GUI 1800 when the data points of the four waveforms are processed by four CPU cores, and the fourth column in Table 1 includes the runtime for updating the GUI 1800 when the data points of the four waveforms are processed by the GPU 152.
[0082]
[0083] Table 1
[0084] As shown in Table 1, when moving the upper threshold slider 1804 or the lower threshold slider 1806, the time to update the GUI 1800 using a single CPU core when there are 500 million data points for each of the four waveforms is 2.9 seconds. The time to update the GUI 1800 using four CPU cores when there are 500 million data points for each of the four waveforms is reduced to 1.6 seconds. The time to update the GUI 1800 using the GPU 152 when there are 500 million data points for each of the four waveforms is 0.029 seconds.
[0085] In the second row of Table 1, the number of waveform points per waveform is doubled (1 billion waveform points), and therefore, the runtime for 1 CPU core, 4 CPU cores, and GPU implementations is also approximately doubled in general. Similarly, in the third row of Table 1, the number of waveform points per waveform is doubled (2 billion waveform points), and the runtime for 1 CPU core, 4 CPU cores, and GPU implementations is again approximately doubled.
[0086] The fourth row of Table 1 shows that the 4 CPU core implementation runs for 12 seconds to update the GUI 1800 when there are 4 billion waveform points, and the fifth row of Table 1 shows that the 4 CPU core implementation runs for 28.5 seconds to update the GUI 1800 when there are 8 billion waveform points. Such response times cannot provide an interactive experience, such as an experience of updating the GUI 1800 in real time or near real time.
[0087] In addition, the running time of the GPU implementation is not present in the fourth and fifth rows of Table 1. This is because the waveform points of the fourth and fifth rows no longer fit within the random access memory (RAM) of the GPU 152. Typically, the GPU includes a maximum of 80 GB of on-board RAM memory. When more than the maximum data capacity available on the RAM of the GPU 152 is required to update the GUI 1800, the waveform points are truncated and the GPU 152 cannot properly update the GUI 1800. In view of the foregoing, the interactive experience for updating the GUI 180 is limited by the capacity of the RAM memory of the GPU 152, while on the other hand, the performance is unacceptable when utilizing the 1 CPU core implementation and the 4 CPU core implementation for waveform points of large data set sizes.
[0088] As will now be described in greater detail, a hybrid technique can be implemented on the flow cytometer system 100 that utilizes host random access memory (RAM) to store waveform data and utilizes the GPU 152 to process the waveform data. The hybrid technique can significantly reduce the response time for calculating one or more parameters and displaying events in the first scatter plot 1810 and the second scatter plot 1812 in response to adjustments of the upper threshold slider 1804 and the lower threshold slider 1806 in the GUI 1800.
[0089] Fig.19 An example of a flow cytometer system 100 is schematically shown, which includes a workstation 1900 having a host random access memory (RAM) 1902. Examples of the workstation 1900 include a desktop computer, a personal computer (PC), etc. In other examples, the host RAM 1902 can be housed on a server such as a remote server or a cloud server. As an example, the host RAM 1902 has a storage capacity of 1 terabyte or more.
[0090] like Fig.19 , host RAM 1902 is communicatively connected to graphics processing unit 152 via connection 1904. In some examples, connection 1904 is a physical connection, such as a cable, that physically connects host RAM 1902 to waveform analysis device 150. In such an example, the physical connection can be implemented through wired computer networking technology such as Ethernet. Alternatively, connection 1904 can include a wireless connection, such as a connection implemented through a wireless network protocol including a satellite communication network, a cellular network, Wi-Fi, etc.
[0091] In some examples, communication between the host RAM 1902 and the waveform analysis device 150 may be accomplished using a peripheral component interconnect express (PCIe) bus interface 1906 housed on the workstation 1900. The PCIe bus interface 1906 is a high-speed serial computer expansion bus standard that provides a motherboard interface for graphics cards, sound cards, hard drive host adapters, solid-state drives (SSDs), Wi-Fi, and Ethernet hardware connections on the workstation 1900. As an illustrative example, the PCIe bus interface 1906 may transfer data to or from the workstation 1900 at 64 GB per second. Fig. 20 An example of a method 2000 of performing a blending technique to update the GUI 1800 based on an adjustment of the upper threshold slider 1804 or the lower threshold slider 1806 is schematically illustrated. In the method 2000, waveform data is stored in the host RAM 1902.
[0092] Method 2000 includes step 2002 of copying waveform data from host RAM 1902 to GPU 152. As an illustrative example, step 2002 may include copying 32 GB of waveform data from host RAM 1902 to GPU 152. As another example, transferring 32 GB of waveform data from host RAM 1902 to GPU 152 takes approximately 0.5 seconds.
[0093] Next, method 2000 includes step 2004 of processing the waveform data on GPU 152. As an illustrative example, processing 4 x 2000 million waveform points on GPU 152 takes approximately 0.120 seconds (see Table 1, third row).
[0094] Next, the method 2000 includes a step 2006 of determining whether all waveform data points have been processed. In the event that it is determined that not all waveform data points have been processed (i.e., "No" in step 2006), the method 2000 proceeds to repeat steps 2002 to 2006. Otherwise, in the event that all waveform data points have been processed (i.e., "Yes" in step 2006), the method 2000 terminates at step 2008.
[0095] Table 2 summarizes the performance of updating the GUI 1800 based on the method 2000. As shown in Table 2, when there are 4 billion data points for each of the four waveforms, the total runtime is 0.740 seconds, which is calculated by adding the time required for the GPU 152 to process the waveform data (2×0.120 seconds) to the time to transfer the waveform data from the host RAM 1902 to the GPU 152 (0.500 seconds). This runtime is significantly less than the 12 seconds runtime required for the four CPU core implementation (see Table 1).
[0096]
[0097] Table 2
[0098] The 8 billion data points for each of the four waveforms represent a data size of 64 GB. Therefore, processing this waveform data requires two waveform data transfers (e.g., 32 GB each) from the host RAM 1902 to the GPU 152, one transfer every 0.5 seconds, for a total time of 1 second. The time required for the GPU 152 to process the waveform data is 4×0.120 seconds, thus giving a total runtime of 1.480 seconds. This runtime is significantly less than the 28.5 second runtime required for the four CPU core implementation (see Table 1).
[0099] In addition, the running time of updating the GUI 1800 based on the method 2000 can be further reduced by improving the performance of the PCIe bus interface 1906. For example, the running time shown in Table 2 is based on a PCIe-4 bus interface, which transfers data to or from the workstation 1900 at 64GB per second (i.e., 0.5 seconds to transfer every 32GB). Alternatively, when a PCIe-5 bus interface is used, the data transfer rate is 128GB per second. Therefore, it will take 0.25 seconds to copy 32GB of waveform data from the host RAM 1902 to the GPU 152 instead of 0.5 seconds. Table 3 summarizes the performance of updating the GUI 1800 based on the method 2000 when using the PCIe-5 bus interface.
[0100]
[0101] Table 3
[0102] Another technique to further reduce the runtime for updating GUI 1800 based on the adjustment of upper threshold slider 1804 or lower threshold slider 1806 may include compressing the waveform data. For example, a lossless compression algorithm may provide 2X compression, so that the transmission of N bytes of waveform data in T time units will result in 2N bytes being present on the GPU after the transmission and subsequent decompression.
[0103] In addition to the above-mentioned mixing techniques, data extraction techniques may be implemented to further enhance the interactive experience of the user of the flow cytometer system 100. When the user clicks the mouse pointer 1808 on one of the upper threshold slider 1804 and the lower threshold slider 1806, the data extraction technique may extract waveform data to trick the user into thinking that the GUI 1800 is updating in real time or near real time.
[0104] As an illustrative example, when the waveform data includes 8 billion data points for each of four waveforms (i.e., row 5 of Table 1), and when the user clicks the mouse pointer 1808 on one of the upper threshold slider 1804 and the lower threshold slider 1806, the data extraction technique includes processing a subset of the waveform data points, such as 1 waveform data point out of every 16 waveform data points. For example, when the user moves the upper threshold slider 1804 or the lower threshold slider 1806, the GPU 152 processes a data set size of 500 million data points for each of the four waveforms (i.e., row 1 of Table 1). Therefore, event extraction by the GPU 152 for the four waveforms will occur for 0.029 seconds. As events are extracted, histograms, scatter plots, density plots, etc. displayed in the GUI 1800 will be updated in real time or near real time to give the user an interactive experience.
[0105] When the user is satisfied with the threshold value associated with the upper threshold slider 1804 or the lower threshold slider 1806, the user cancels clicking the mouse pointer 1808 on the upper threshold slider 1804 or the lower threshold slider 1806. At this time, the GPU 152 processes all of the waveform data points (8 billion data points for each of the four waveforms) at a runtime of 1.480 seconds (see row 3 of Table 2) or 0.980 seconds (see row 3 of Table 3) according to the PCIe bus interface for transferring data from the host RAM 1902. In view of the above, the data extraction technique includes processing a subset of the waveform data while the upper threshold slider 1804 or the lower threshold slider 1806 is being moved by the user, and then processing all of the waveform data when the user releases the mouse 1860.
[0106] Fig.21 Schematically illustrates an example of a method 2100 for extracting waveform data that may be performed by the waveform analysis device 150. The method 2100 includes a step 2102 of detecting a user input on the upper threshold slider 1804 or the lower threshold slider 1806. The user input may include a mouse pointer 1808 selecting the upper threshold slider 1804 or the lower threshold slider 1806, and then moving the upper threshold slider 1804 or the lower threshold slider 1806 up or down to adjust its value.
[0107] Method 2100 includes step 2104 of decimating the waveform data points to a subset of waveform data points. Step 2104 may include decimating the waveform data points by a ratio of, for example, 1:32, 1:16, 1:8, etc. For example, when there are 8 billion waveform data points, step 2104 may include decimating the waveform data points by 1:16 to provide a subset of 500 million waveform data points. Additional examples are contemplated.
[0108] The method 2100 includes a step 2106 of extracting events (e.g., waveform data points) based on the current value of the upper threshold slider 1804 or the lower threshold slider 1806 and the extraction of waveform data points performed in step 2104. For example, when one of the upper threshold slider 1804 and the lower threshold slider 1806 is being moved and the other is stationary, step 2106 includes extracting events having values between the moving or stationary upper threshold slider 1804 and the moving or stationary lower threshold slider 1806.
[0109] The method 2100 includes a step 2108 of calculating one or more statistics based on the events extracted in step 2106. Step 2108 includes calculating the statistics based on a subset of waveform data points rather than a total number of waveform data points, the waveform data points being extracted based on the current values of the upper threshold slider 1804 and the lower threshold slider 1806. For example, step 2108 may include calculating a minimum, maximum, average, and mode value from the subset of waveform data points.
[0110] The method 2100 includes a step 2110 of updating one or more displays of data based on the events extracted in step 2106. For example, step 2110 may include updating a histogram, scatter plot, density plot, etc. based on a subset of waveform data points rather than a total number of waveform data points, the waveform data points being extracted based on the current values of the upper threshold slider 1804 and the lower threshold slider 1806.
[0111] The method 2100 includes a step 2112 of determining whether the mouse pointer 1808 is de-clicked so that the upper threshold slider 1804 or the lower threshold slider 1806 is no longer selected. When it is determined that the mouse pointer 1808 is still clicked so that the upper threshold slider 1804 or the lower threshold slider 1806 is still selected (i.e., "No" in step 2112), the method 2100 may repeat steps 2102 to 2112. Otherwise, when it is determined that the mouse pointer 1808 is de-clicked so that the upper threshold slider 1804 or the lower threshold slider 1806 is no longer selected (i.e., "Yes" in step 2112), the method 2100 proceeds to a step 2114 of extracting all waveform data points based on the current values of the upper threshold slider 1804 and the lower threshold slider 1806.
[0112] The method 2100 includes a step 2116 of calculating one or more statistics based on the events extracted in step 2114. For example, step 2116 may include calculating statistics based on a total number of waveform data points rather than a subset of waveform data points, the waveform data points being extracted based on the current values of the upper threshold slider 1804 and the lower threshold slider 1806.
[0113] The method 2100 includes a step 2118 of updating one or more displays of data based on the events extracted in step 2114. For example, step 2118 may include updating a histogram, a scatter plot, a density plot, etc. based on the total number of waveform data points that were extracted based on the current values of the upper threshold slider 1804 and the lower threshold slider 1806.
[0114] The method 2100 provides a data extraction technique that improves the interactive experience provided by the waveform analysis device 150 by more quickly updating the display of statistical information and graphs on the GUI 1800 by processing a subset of the waveform data while the upper threshold slider 1804 or the lower threshold slider 1806 is being selected and moved by the user. When the user releases the mouse 1860 (e.g., when the user is satisfied with the value of the upper threshold slider 1804 or the lower threshold slider 1806), the method 2100 updates the display of statistical information and graphs on the GUI 1800 by processing all of the waveform data.
[0115] Although specific embodiments are described herein, the scope of the present disclosure is not limited to those specific embodiments.The scope of the present disclosure is defined by the following claims and any equivalents thereof.
Claims
1. A flow cytometric system configured to direct a fluid stream of particles through an interrogation location, the flow cytometric system comprising: a laser configured to emit light toward the interrogation location to generate an optical signal from the particle; one or more detectors configured to convert the optical signal into waveform data; a waveform acquisition device configured to digitize the waveform data; as well as A graphics processing unit is configured to apply one or more adjustable threshold voltages to the digitized waveform data to extract event data from the particles.
2. The flow cytometry system according to claim 1, wherein: The graphics processing unit is configured to direct a graphical user interface to update a display of the event data when the one or more adjustable threshold voltages are applied.
3. The flow cytometry system according to claim 1 or 2, further comprising: A waveform analysis device comprising the graphics processing unit is configured to apply the one or more adjustable threshold voltages.
4. The flow cytometry system according to claim 3, wherein: The waveform analysis device is configured to apply the one or more adjustable threshold voltages based on movement along a scale for increasing or decreasing the one or more adjustable threshold voltages.
5. The flow cytometry system according to claim 4, wherein: In response to movement along the scale for increasing or decreasing the one or more adjustable threshold voltages, the graphics processing unit is configured to generate updated event data for the particle without causing the particle to re-pass the interrogation location.
6. The flow cytometry system according to any one of claims 3 to 5, wherein: The waveform analysis device is configured to: applying a first threshold voltage; analyzing the digitized waveform data using the first threshold voltage; applying a second threshold voltage different from the first threshold voltage; and The digitized waveform data is analyzed using the second threshold voltage without causing the particle to repass the interrogation location.
7. The flow cytometry system according to any one of claims 3 to 5, wherein: The waveform analysis device is configured to: applying a first threshold and a second threshold to the digitized waveform data; and Event data comprising a sequence of digital values is generated from the digitized voltage waveform without causing the particle to repass the interrogation location, wherein the event data comprising the sequence of digital values is generated by ensuring that each digital value in the sequence of digital values is greater than the first threshold and less than the second threshold.
8. The flow cytometry system according to any one of claims 3 to 7, wherein: The waveform analysis device is configured to automatically determine the one or more adjustable threshold voltages for each pulse of the digitized waveform data.
9. The flow cytometry system according to any one of claims 3 to 8, wherein: The waveform analysis device applies the one or more adjustable threshold voltages after acquiring the digitized waveform data from the waveform acquisition device.
10. A flow cytometry system according to any one of the preceding claims, wherein: The graphics processing unit is configured to process the event data to calculate a skewness and a kurtosis for each of the particles.
11. A flow cytometry system according to any one of the preceding claims, wherein: The graphics processing unit is configured to apply a fast Fourier transform (FFT) to the digitized waveform data to generate vector valued data for each of the particles.
12. A flow cytometry system according to any one of the preceding claims, wherein: At least one of the one or more adjustable threshold voltages is a non-constant value.
13. A flow cytometry system according to any one of the preceding claims, wherein: The waveform acquisition device is configured to continuously digitize the analog waveform data, the analog waveform data including times between the particles when the particles are not interrogated by the laser.
14. A flow cytometry system according to any one of the preceding claims, wherein: The waveform acquisition device is configured to continuously digitize the analog waveform data without using a threshold voltage.
15. The flow cytometry system of any one of the preceding claims, further comprising: a sheath pressure sensor configured to detect fluid pressure; as well as a laser sensor configured to detect light intensity of the laser; Wherein, the waveform acquisition device is configured to continuously digitize the fluid pressure and the light intensity.
16. A method for analyzing particles flowing through a flow cytometer, the method comprising: directing a fluid stream of particles through an interrogation location; emitting light toward the interrogation location to generate an optical signal from the particle; converting the optical signal into analog waveform data; continuously digitizing the analog waveform data, the analog waveform data including times between the particles when the particles are not interrogated by the laser; as well as One or more adjustable threshold voltages are applied to the digitized waveform data to extract event data from the particles.
17. A non-transitory computer readable medium containing program instructions which, when executed by a processor, cause the processor to: digitizing the voltage waveform generated as particles flow past the interrogation location; Store digitized voltage waveform; applying a first threshold and a second threshold to the digitized voltage waveform; and generating event data comprising a sequence of digital values from the digitized voltage waveform without causing the particle to re-pass the interrogation location, wherein: Generating event data comprising a sequence of digital values is performed by making each digital value in the sequence of digital values greater than the first threshold and less than the second threshold.
18. A method of operating a particle analyzer, the method comprising: passing the particle through an interrogation location; illuminating the particle with light as the particle passes the interrogation location; detecting an optical signal from the particle; generating digitized waveform data from the optical signal; as well as The digitized waveform data is stored in a persistent storage device.
19. The method according to claim 18, wherein: The digitized waveform data is stored prior to applying a threshold voltage.
20. The method of claim 18 or 19, further comprising displaying at least some of the digitized waveform data prior to applying a voltage threshold.
21. A method for post-processing flow cytometry data, the method comprising: accessing the digitized waveform data from the computer readable storage device after interrogation of particles in the sample is completed by the flow cytometer; determining a threshold voltage; applying the threshold voltage to the digitized waveform data; as well as The particles in the sample are characterized after applying the threshold voltage.
22. The method according to claim 21, wherein: The threshold voltage is specified by user input.
23. The method according to claim 21 or 22, further comprising: After characterizing the particle, determining a second threshold voltage different from the threshold voltage previously applied to the digitized waveform data; applying the second threshold voltage to the digitized waveform data; as well as The particles in the sample are re-characterized after applying the second threshold voltage.
24. The method according to claim 23, wherein: Applying the second threshold voltage to the digitized waveform data is performed without repassing the sample through the flow cytometer.
25. The method according to claim 23 or 24, wherein: Applying the threshold voltage to the digitized waveform data is performed using a graphics processing unit.
26. The method according to claim 25, wherein: The graphics processing unit is part of a computing device separate from the flow cytometer.
27. The method according to claim 26, wherein: The computing device has greater than 1 terabyte of random access memory, wherein the random access memory is used by the graphics processing unit to process the digitized waveform data.
28. The method according to any one of claims 23 to 27, wherein: The digitized waveform data is not processed by a field programmable gate array.
29. A flow cytometric system configured to direct a fluid stream of particles through an interrogation location, the flow cytometric system comprising: a laser configured to emit light toward the interrogation location to generate an optical signal from the particle; one or more detectors configured to convert the optical signal into waveform data; a waveform acquisition device configured to digitize the waveform data; a graphics processing unit configured to apply one or more adjustable threshold voltages to the digitized waveform data to extract event data from the particles; as well as a graphical user interface that displays the one or more adjustable threshold voltages relative to the digitized waveform data; Wherein, in response to a change in the one or more adjustable threshold voltages, the graphics processing unit is configured to generate update event data based on the change in the one or more adjustable threshold voltages without causing the particle to re-pass the interrogation location.
30. The flow cytometry system of claim 29, wherein: The waveform data is copied from a host random access memory communicatively coupled to the graphics processing unit.