Method and system for recursive batch processing of diagrams via user-set parameters
The method automates the generation of flow cytometry reports by creating templates and populating batch reports with datasets, addressing the inefficiencies of manual data visualization in existing systems, enabling efficient and flexible report creation.
Patent Information
- Application Number
- JP2025534502
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-12-12
- Filing Date
- 2023-12-12
- Publication Date
- 2026-01-14
AI Technical Summary
Existing data visualization techniques for flow cytometry require tedious and repetitive manual efforts to present large or multiple data sets, limiting the efficiency and flexibility in generating reports.
A method and system for automatically generating reports by creating a template based on user input, selecting a source group and iterator type, and iteratively populating batch reports with datasets, allowing for flexible and automated generation of images, plots, charts, tables, or text.
Enables efficient and flexible automated report generation for large flow cytometry datasets, reducing manual effort and enhancing usability by allowing pictorial and textual representations of data.
Smart Images

Figure 2026501164000001_ABST
Abstract
Description
[Background technology]
[0001] Introduction Flow-based particle detection and analysis systems, such as flow cytometers, are used to detect, analyze, and possibly sort particles in a fluid sample based on at least one measured property of the particles. Visualization of data obtained from flow-based particle detection and analysis systems plays an important role in understanding, analyzing, and characterizing the collected data and is used, for example, in biological and medical research.
[0002] Analysis of data obtained from a flow-type particle detection system can involve visualization of the data, such as displaying a plot of the data. It is often useful to visualize multiple different aspects of a flow cytometry experiment, such as the flow cytometry analysis of different samples. Using data visualization techniques to analyze underlying data, such as flow cytometry data, is useful for understanding and characterizing particles, such as cells, in a sample exposed to a particle detection system, as well as populations or clusters of particles in the sample.
[0003] Generally, flow cytometry techniques facilitate the collection of very large data sets as well as very large numbers of data sets. Techniques for facilitating the presentation of such large or multiple data sets are important to enable the analysis of such data. Often, such techniques require tedious, technical, and repetitive overhead to systematically visualize or otherwise represent such large or multiple data sets. Summary of the Invention
[0004] Accordingly, the inventors have recognized that there is a need for further and continuing improvements in data visualization techniques, such as techniques for processing and then visualizing large data sets in a substantially automated manner. In particular, there remains a need for automatically generating reports presenting data from multiple data sets, each report structured based on a single design or template. Embodiments of the present invention fulfill this need. Such a need is particularly true with respect to flow cytometry data, in light of the large datasets and large number of datasets associated with flow cytometry experiments.
[0005] As mentioned above, an advantage of flow cytometry is the ability to collect large data sets. Typically, users have many data files and desire to generate reports on any number of different data sets. Embodiments of the present invention enable this capability by introducing novel techniques for generating reports for visualizing large data sets, such as flow cytometry data, more effectively and efficiently, both in terms of minimizing and simplifying the steps required by a user to generate a report and in terms of flexibility in presenting any number of data sets, data set types, and the configuration of reports based on such data sets, thereby improving the usability of data visualization techniques, particularly for visualization of data collected via flow-based particle detection and analysis systems. Existing techniques in the art relate to text-based techniques that involve manual configuration of various fields for automatic population of data, for example, from a spreadsheet. Utilizing embodiments of the present invention for automatic report generation enables highly flexible and automated report generation that is not limited to text-based techniques.
[0006] Aspects of the present disclosure include, for example, methods, systems, and non-transitory computer-readable storage media for automatically generating reports based on flow cytometry data. According to certain embodiments, a method for automatically generating a report includes generating a report template based on input from a user; selecting a source group and an iterator type based on the input from the user, where the source group includes multiple datasets and the iterator type corresponds to a type of data present in the source group; and iteratively populating multiple batch reports using the multiple datasets of the source group based on the iterator type, where each batch report conforms to the report template and is populated with a distinct dataset from the multiple datasets of the source group. Aspects of the present disclosure further include a method for automatically generating a report, where such report includes one or more of an image, a plot, a chart, a table, a legend, or text and is populated with data from one or more datasets.
[0007] Aspects of the present disclosure further include systems for implementing the subject methods. A system for automatically generating reports according to certain embodiments comprises a processor, the 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 receive input from an input device specifying a configuration of a report template, generate a report template based on the configuration received from the input device, receive input from the input device specifying a source group and a replicator type, the source group including multiple data sets, the replicator type corresponding to a type of data present in the source group, iteratively populate a plurality of batch reports using the multiple data sets of the source group based on the replicator type, each batch report conforming to the report template and populated with a distinct data set of the multiple data sets of the source group, and output the plurality of batch reports to an output device, wherein the processor and the memory are operatively connected to each of the input device and the output device.
[0008] Aspects of the present disclosure further include a non-transitory computer-readable storage medium including instructions stored thereon for implementing the subject methods. According to certain embodiments, the non-transitory computer-readable storage medium includes instructions, the instructions including: an algorithm for generating a report template based on input from a user; an algorithm for selecting a source group and an iterator type based on input from the user, the source group including multiple datasets and the iterator type corresponding to a type of data present in the source group; and an algorithm for iteratively populating multiple batch reports using the multiple datasets of the source group based on the iterator type, each batch report conforming to the report template and populated with a distinct dataset of the multiple datasets of the source group. [Brief explanation of the drawings]
[0009] The invention may be best understood from the following detailed description when read in conjunction with the accompanying drawings, in which:
[0010] [Figure 1] 1 illustrates an example of a method that exists in the art for automatically populating a text document with text from a spreadsheet. [Figure 2] 1 presents an exemplary embodiment of a report template in accordance with aspects of the present invention. [Figure 3] 1 illustrates a flow diagram of a method for automatically generating a report according to one embodiment of the present invention. [Figure 4A] 10 illustrates a flow diagram of a method for automatically generating a report according to another embodiment of the present invention. [Figure 4B] 10 illustrates a flow diagram of a method for automatically generating a report according to another embodiment of the present invention. [Figure 4C] 10 illustrates a flow diagram of a method for automatically generating a report according to another embodiment of the present invention. [Figure 5A] 10 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 5B] 10 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 5C] 10 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 5D] 10 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 5E] 10 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 5F] 10 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 5G] 10 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 6A] 1 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 6B] 1 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 6C] 1 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 6D] 1 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 6E] 1 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 6F] 1 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 6G] 1 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 6H] 1 illustrates a flow diagram of a method for automatically generating a report according to yet another embodiment of the present invention. [Figure 7] 1 depicts the general architecture of an exemplary computing device according to certain embodiments. [Figure 8] 1 shows an excerpt of a user interface for configuring aspects of one embodiment of the present invention. [Figure 9A] An example of generating a report template and using such template to automatically generate batch reports is shown in a presentation according to one embodiment of the present invention. [Figure 9B] An example of generating a report template and using such template to automatically generate batch reports is shown in a presentation according to one embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0011] Aspects of the present disclosure include, for example, methods, systems, and non-transitory computer-readable storage media for automatically generating reports presenting flow cytometry data. According to certain embodiments, a method for automatically generating a report includes generating a report template based on input from a user; selecting a source group and an iterator type based on the input from the user, where the source group includes multiple datasets and the iterator type corresponds to a type of data present in the source group; and iteratively populating multiple batch reports using the multiple datasets of the source group based on the iterator type, where each batch report conforms to the report template and is populated with a distinct dataset from the multiple datasets of the source group. Aspects of the present disclosure further include methods for automatically generating reports, where such reports include one or more of an image, a plot, a chart, a table, a legend, or text and are populated with data from one or more datasets. Systems for implementing the subject methods are also provided. Non-transitory computer-readable storage media are also described.
[0012] Before describing the present invention 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.
[0013] 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 limit of that range, and any other stated or intervening value in that 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 specifically 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.
[0014] Certain ranges are described herein by 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 stated number, a number not stated to be near or approximately may be a number that, in the context in which it is presented, represents the substantial equivalent of the specifically stated number.
[0015] 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 also be used in the practice or testing of the present invention, representative exemplary methods and materials are now described.
[0016] All publications and patents cited herein are incorporated by reference to disclose and describe the methods and / or materials for 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 publication dates provided may be different from the actual publication dates, which may need to be independently confirmed.
[0017] 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 basis prior to using exclusive terminology, such as "solely," "only," and the like, in connection with the recitation of claim elements or the use of a "negative" limitation.
[0018] As will be apparent to those skilled in the art upon reading this disclosure, each of the individual embodiments described and illustrated herein has individual components and features which may be readily separated or combined with the features of any of the other several 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.
[0019] Although the apparatus and methods are described for grammatical fluidity with functional descriptions, it is to be clearly understood that the claims should not be construed as necessarily limited by "means" or "step" limitation constructions unless expressly formulated under 35 U.S.C. § 112, but rather should be given the full scope of meaning and equivalents of the definitions provided by the claims under the doctrine of equivalents, and that if a claim is expressly formulated under 35 U.S.C. § 112, then the full statutory equivalents under 35 U.S.C. § 112 should be given.
[0020] The present disclosure provides a method for automatically generating reports. In further describing embodiments of the present disclosure, a method is first described in more detail, including generating a report template based on input from a user; selecting a source group and an iterator type based on input from the user, where the source group includes multiple datasets and the iterator type corresponds to a type of data present in the source group; and iteratively populating multiple batch reports using the multiple datasets of the source group based on the iterator type, where each batch report conforms to the report template and is populated with a distinct dataset from the multiple datasets of the source group. Next, a system for implementing the subject method is described. A non-transitory computer-readable storage medium is also described.
[0021] As described herein, the present invention relates to automatically generating reports, including iteratively populating multiple reports using multiple data sets. In the prior art, a common technique for automatically populating text within a template is Microsoft Word's "mail merge," which is used to populate fields in a template text document (i.e., a Microsoft Word document) using designated fields in a spreadsheet document (i.e., a Microsoft Excel document). An example of how such a prior art technique automatically populates text from a spreadsheet into a text document is shown in FIG. 1. A mail merge process 110 includes designating fields within text documents 120a, 120b. Designating fields within text documents 120a, 120b includes, for example, tagging each field with information specifying the applicable data type to be entered in such field. For example, a field within a text document may be designated as a "Name" field or a "Company" field. Upon activating the mail merge, such designated fields in the text document are populated using text stored in a spreadsheet 130. That is, one or more mail-merge documents are generated in which each specified field 120 contains the corresponding data from the spreadsheet 130 .
[0022] The SendBlaster "mail merge" process 150 works similarly, with a text document 160 being annotated by the user with specific fields for automatic populating. The SendBlaster "mail merge" process 150 also requires the user to specify a list of addresses (not shown) to merge into the text document. When the SendBlaster "mail merge" process 150 is invoked, one or more documents are generated with the specified text fields populated with relevant text from the list of addresses.
[0023] Each such mail merge process 110, 150 requires the user to explicitly highlight (i.e., annotate or "insert merge fields") the desired text documents. Furthermore, such processes 110, 150 require the user to create a spreadsheet or the like that specifies or otherwise organizes the text to be populated into each text document in a particular format. That is, such processes 110, 150 require many separate, detailed, and granular steps to set up an automated populating process. Furthermore, such techniques are only applicable to text fields; that is, documents are automatically populated with only text data.
[0024] As described herein, embodiments of the present invention do not require such detailed and granular setup and configuration in advance, but instead allow a user to generate a report template and designate it as batchable (also called repeatable; i.e., for automatic population of related data sets). Applying an embodiment of a method in accordance with the present invention results in any content within such a batchable report template (i.e., automatically populated) being batch processed. In embodiments, batch processing is governed by groups. In some cases, groups are partitions of data files that can be configured in advance, with or without membership criteria. When configured without criteria, a user can add data to a group simply by dragging and dropping data files into the group, thus determining which files to batch process without any configuration beyond template creation. Alternatively, groups may be created using criteria that specify membership based on some attribute of the data. This attribute can be inherent to the data or can be annotated by the user at any time. In such cases, automatic assignment results in the separation of files for batch processing without user input.
[0025] Furthermore, embodiments of the present invention are not limited to text only, but instead can automatically generate data analysis reports using pictorial representations of the data, such as charts or plots, either alone or in combination with text. Such improvements over the prior art provided by embodiments of the present invention are discussed further herein.
[0026] method As summarized above, a method for automatically generating a report is provided, which, according to certain embodiments, includes generating a report template based on input from a user, selecting a source group and an iterator type based on the input from the user, the source group including a plurality of datasets and the iterator type corresponding to a type of data present in the source group, and iteratively populating a plurality of batch reports using the plurality of datasets of the source group based on the iterator type, each batch report conforming to the report template and populated with a distinct dataset from the plurality of datasets of the source group.
[0027] Report Template: In embodiments, report templates are generated by a user. That is, for example, a user can interact with the user interface of any convenient computer system to draft or configure a desired format for presenting data of interest. As described herein, a desired report includes a report presenting a dataset collected from analyzing one or more samples by flow cytometry. In embodiments, a report template specifies one or more aspects of the data to be presented in an automatically generated report. For example, a report template may specify a plot including, for example, a two-dimensional histogram of light intensity data corresponding to two different ranges of wavelengths of light of interest in connection with an experiment. Such a report template defines how data from available datasets are subsequently populated into a batch report (i.e., an automatically generated report). That is, a batch report is an automatically generated report that is a specific instance of a report template that includes (presents) a desired dataset.
[0028] In embodiments, the report template includes a data visualization structure. By data visualization structure, we mean any convenient form of presenting data, including graphical representations of data, such as one or more of an image, plot, chart, table, legend, or text. As previously mentioned, plots of interest may include histograms, such as two-dimensional histograms presenting light intensity data corresponding to different aspects of light detected by flow cytometric analysis of a sample. In embodiments where the data visualization structure includes an image, such an image may be an image of a cell. For example, such an image may show an image of a cell, where such an image is collected by an imaging flow cytometer, as described herein.
[0029] As mentioned above, in embodiments of the present invention, the report template is generated by a user. In such cases, generating the report template can include receiving a configuration of a data visualization structure from the user. Such a configuration can include an arrangement of one or more plots with associated variables of interest displayed along each axis of the plot based on an underlying dataset, such as flow cytometry data, to which embodiments of the present invention are applied. In other cases, the configuration received from the user can include manipulating multiple data visualization structures, such as plots with text associated with the plots, or tables associated with the plots, or images associated with the plots. In embodiments, the report template comprises the basis for automatically generated reports, i.e., instances of the report template populated with data (batch reports).
[0030] Exemplary embodiments of report templates: FIG. 2 illustrates an exemplary embodiment of a report template according to an aspect of the present invention. Seen in FIG. 2 is report template 200 including plot 210. Plot 210 includes a two-dimensional histogram having an x-axis and a y-axis, each associated with a different light intensity variable associated with a dataset generated by flow cytometrically analyzing a sample of interest. Plot 210 is a report template and therefore need not be populated with data; however, in this case, plot 210 represents flow cytometry data corresponding to, for example, a source group of datasets of previously collected flow cytometry data. As previously discussed, embodiments of the present method automatically determine which aspects of report template 210 can be populated with data from multiple datasets of a source group. That is, in embodiments, by specifying report template 210 itself, a user specifies which fields of a report can be populated with data from each dataset of a source group. What data is ultimately populated into the fields of report template 210 depends, further, on the user's selection of source groups and iterator types, as described herein.
[0031] As described further below, the report template 200 is presented on a presentation page 220. The presentation page 220 is a page designed by a user to organize the data presented to consumers of the automatically generated report. In the embodiment shown in FIG. 2, the presentation page 220 includes a legend 230 with characteristics about the datasets (e.g., data about one or more samples) used to populate the automatically generated report. The information provided about the samples in the legend 230 may include, for example, the names of the different biological samples analyzed by flow cytometry. The presentation page 220 further includes a layout 240 of a report (i.e., a batch report as described herein) automatically generated by application of an embodiment of the method of the present invention. Such layout 240 includes annotated arrows indicating that such batch reports are generated in part by iteratively populating each such batch report using data from a source group of datasets. These four plots 240 represent iterations from a particular sample, such as "iterate by parameters" or "iterate by population" to select subpopulations of the primary sample.
[0032] Source Group: Embodiments of the method of the present invention further include selecting a source group and an iterator type based on input from a user. In such embodiments, a source group includes multiple datasets. That is, a source group may include multiple datasets, each corresponding to the results of analyzing a different sample using a flow cytometer. That is, each dataset in a source group may include, for example, a different collection of flow cytometry data collected from analyzing different samples with flow cytometry. Any convenient number of datasets may be specified in a source group, and such may vary. The number of datasets typically corresponds to aspects of the underlying experiment for which the flow cytometer is being used to analyze data and for which it is desired to present the results in the form of a collection of automatically generated reports (i.e., batch reports).
[0033] As noted above, in certain embodiments, each dataset of a source group includes flow cytometry data. In such embodiments, the flow cytometry data may include light scatter or marker data, or a combination thereof, or any other data that can be collected, for example, via a flow cytometer. In some cases, the light scatter data includes forward scatter or side scatter, or a combination thereof. In other cases, the marker data includes fluorescence data. As noted above, in some embodiments, the flow cytometry data includes data obtained by analyzing a sample with a flow cytometer. In examples, each dataset of a source group includes flow cytometry data corresponding to a different sample. In some cases, each dataset of a source group may include flow cytometry data corresponding to different statistics related to the underlying flow cytometry data. In certain examples, each dataset of a source group may include flow cytometry data corresponding to different measurements derived from analyzing one or more samples using a flow cytometer. In some embodiments, each dataset of a source group may include flow cytometry data corresponding to a different interval.
[0034] Embodiments of the present invention may further include receiving a dataset of a source group. For example, such a dataset may be received via an operable connection with any convenient flow cytometer system, or in other cases, such dataset may correspond to datasets collected from a flow cytometer at different times and locations, with such results being recorded on a non-transitory computer-readable storage medium, for example, in the form of an ".fcs" file. In embodiments, selecting a source group includes selecting the source group from a drop-down menu. That is, a source group, or aspects thereof, such as one or more datasets to include in the source group, may be selected by a user via any convenient user interface that includes a list or other presentation of available source groups or aspects, such as in the form of a drop-down menu.
[0035] Iterator types: In embodiments, the iterator type corresponds to the type of data present in the datasets of the source group. That is, the iterator type specifies which aspects of each dataset (e.g., which variables or types of data, etc.) should be presented in each report automatically generated according to the methods of the present invention. For example, in the context of flow cytometry data, the iterator type may specify the range of light intensity data for presentation in each instance of an automatically generated report (i.e., batch report). In the context of the exemplary report template 200 shown in FIG. 2 , the iterator may include data associated with each of the x-axis and y-axis of the plot 210. In such an example, the automatically generated plot (i.e., the plot of the batch report) presents data on each x-axis and y-axis of each such generated plot that corresponds to the iterator type of each dataset of the source group.
[0036] In embodiments, aspects of the report template corresponding to each repeater type may be automatically identified. That is, a user may designate particular data as a repeater type, and embodiments of the present invention then automatically identify aspects of the report template associated with such repeater type. For example, with reference to the exemplary report template 200 shown in FIG. 2, a user may designate data related to detected light from flow cytometry analysis of data in report template 200, and based on this, the x- and y-axes of plot 210 may be identified as applicable to the selected repeater type for purposes of automatically generating multiple batch reports in accordance with the present invention.
[0037] In addition to automatically identifying aspects of a report template that correspond to an iterator type, embodiments of the present invention can rely on an underlying database or other form of storing data for presentation (e.g., results of flow cytometer experiments, etc.) according to an analytical hierarchy. That is, data collected using a flow cytometer may be stored hierarchically, and such a hierarchy allows appropriate selections of data from the stored data to be inserted into the appropriate locations of each batch report. For example, Becton, Dickinson and Company's FlowJo™ software includes a database that is displayed as an analytical hierarchy. Such hierarchical data storage divides related data into functional groups based on meta-information embedded in the raw data or user files, as well as file system folder structures. Such a hierarchical structure can be utilized, in embodiments, to automatically populate related aspects of a report template with related data from data storage (including data sets from source groups). Furthermore, in embodiments, a user has the option to manually create additional groups, including hierarchical structures, for use in automatically populating fields in a report template with related or associated data from such additional groups. In embodiments, automatically generating batch reports by iteration refers to this grouping structure. This aspect of hierarchical data storage serves to alleviate the need for any further tagging or labeling, as with the tagging or labeling of report templates, similar to the primary merge application described in connection with FIG. 1 above. Instead, in embodiments of the present invention, the user selects from a fixed number of repeater types, and then any objects placed on the page that can be repeated are repeated. In other embodiments, the user can lock objects to repeat or not repeat under constraints, such as a limited data set. In embodiments, the objects (e.g., charts, tables, legends, etc.) that the user places on the page via drag / drop to form the report template are also locked.) is itself similar to the tagged fields in the mail merge example above.
[0038] As previously mentioned, in embodiments, the iterator type identifies a category, type, or aspect of data present in a source group. Example categories include the results of analyzing a sample by collecting light intensity data associated with a range of wavelengths of interest, such as that associated with a fluorescent marker of interest or light scattering data. In other examples, the iterator type may identify a statistic of interest associated with the data in the source group. Any convenient statistical value may be utilized. Examples of such statistics include the average light intensity measured over a particular range, or its maximum or minimum value, associated with each data set in the source group. In embodiments, the iterator type identifies a category of data that may vary across multiple data sets in the source group. In some embodiments, the iterator type selects the type of data used to populate multiple batch reports. That is, the iterator type dictates what data from the data sets in the source group, i.e., what type of data, such as the range of measurements, such as the light intensity, of each sample associated with the data sets in the source group, will be populated in and therefore presented by each batch report.
[0039] An intuitive example of an iterator type is iterating by sample. In this example, a batch report is generated by populating each instance of the report with data from one or more samples in a source group. However, embodiments of the present invention are not limited to setting the iterator type to sample, i.e., iterating by sample. Non-sample-based iterations are useful to allow a user, e.g., an experimenter, to select specific files to perform a desired comparison, such as a desired biological comparison. In a large cytometry experiment, there may be a wide variety of files providing different functions and information. For example, keyword or statistical screening allows a user to efficiently include only information relevant to the desired comparison.
[0040] Additionally, embodiments may provide more comparison arrays that allow a user to make comparisons across subpopulations or top-level populations associated with one or more samples in each case. In embodiments, the format and appearance of the report page, i.e., batch report, is constant regardless of repeat or repeater type, but the content of each batch report is affected, i.e., because different data sets are used to populate each batch report.
[0041] In some cases, the iterator type selects a type of data that varies across multiple batch reports. In this case, each batch report, which is an instance of a report template, is identical in all respects except that it corresponds to an iterator type that varies instead according to the data in the datasets of the source group. In certain embodiments, the batch report is iteratively populated by the iterator type. In some cases, the iterative populating can be thought of as a loop that cycles through each dataset of the source group and extracts data corresponding to the iterator type for presentation in the corresponding batch report. In this example, the number of batch reports may correspond to the number of datasets in the source group.
[0042] In an embodiment, the repeater type determines whether the batch report is recursively populated by sample, keyword, statistic, or interval.
[0043] If the iterator type corresponds to a sample, data from each dataset of the source group (i.e., each sample for which cytometry data is collected) is populated into each batch report, i.e., in embodiments, iteratively populating the batch report by sample includes iterating over the samples of the source group.
[0044] If the repeater type corresponds to keyword, keyword data from the data set of the source group is populated into each batch report. That is, in embodiments, iteratively populating a batch report with keywords includes repeating keywords of the source group. As previously described, a user can select a repeater type, after which the user is presented with options related to such repeater type. For example, a user can select keyword as the repeater type, after which the user is presented with potential keywords available for repeating. While keywords may be derived from or otherwise associated with the underlying data, the types of keywords offered to a user for inclusion in a report template can include a standard selection of potential keywords.
[0045] If the iterator type corresponds to a statistical value, each batch report is populated with the specified statistical value, e.g., one or more statistical values summarizing or based on data from the data sets of the source group. That is, in embodiments, iteratively populating a batch report with statistics includes iterating the statistics of the source group. In embodiments, a user can specify particular statistical values of interest. As described above, a user can select an iterator type, after which the interface in which the user is working presents the user with options related to such iterator type. For example, a user can select a statistical value as the iterator type, after which the user is presented with potential statistical values available for iteration. While such statistics are derived from the underlying data, the types of statistics offered to the user for inclusion in the report template can include a standard selection of potential statistics. The selection of a statistic may be based on what is most relevant to the analysis and underlying data being presented, e.g., the underlying biological question being asked. Such underlying considerations will vary from experiment to experiment, and thus the user must specify desired statistical values for each experiment.
[0046] When the repeater type corresponds to an interval, each batch report is populated with intervals, e.g., one or more intervals present in the data set of the source group, such as one or more time periods during which flow cytometry data is collected. That is, in embodiments, repeatedly populating a batch report by interval includes repeating over the intervals of the source group. In embodiments, a user specifies any desired intervals, e.g., intervals during which flow cytometry data for samples is collected. Generating a batch report by interval (i.e., repeating by interval) suggests that there are regular patterns within or between samples that are relevant to addressing an experimental question, such as addressing a biological question. Because such relevant intervals can vary based on the underlying experiment, in embodiments, a user specifies what the regular intervals are.
[0047] Similar to the mechanism described above in connection with selecting source group data, in embodiments, selecting a replicator type includes a user selecting a replicator type from a drop-down menu. Further, in embodiments, the replicators available for use in connection with generating the batch report may be provided via a selection list component of an interface that presents all available replicator types to the user. Depending on the replicator selected, other functionality settings may become available via such an interface.
[0048] Report presentation: An embodiment of the method according to the present invention further includes a step of selecting the number of reports to be included in a presentation page. That is, as described above, applying the method according to the present invention generates multiple batch reports, i.e., instances of a report template having actual or meaningful data, such as previously collected flow cytometry data, reflected in the batch reports. Depending on user preferences, the user can specify how many such batch reports are presented on one presentation page (e.g., presentation page 220 in FIG. 2 ). A presentation page refers to a document to which automatically generated batch reports are added, i.e., presented. Such a presentation page can include a file reflecting the output of an embodiment of the method according to the present invention, i.e., collected data stored in a non-transitory computer-readable storage medium, which output is intended for user-facing or otherwise user consumption. An exemplary presentation page can include, for example, a page of a PowerPoint presentation or a portable document file. By selecting the number of reports to be included in the presentation page, the user can select the number of pages across which the batch reports are spread. For example, a user may apply an embodiment of a method according to the present invention using a source group containing 16 data sets, each corresponding to a different sample, specify iteration by sample (i.e., set the iterator type to sample), and further specify four automatically generated batch reports per presentation page. In such an example, applying an embodiment of the present invention would automatically generate 16 batch reports, with four batch reports on each of the four presentation pages.
[0049] In contrast to batch reports (which are automatically generated by application of embodiments of the method according to the present invention), presentation pages can also contain static content. Static content is any aspect of a presentation page containing data, reports, or other content that a user designates as static content. Static content is not filled with data from source groups, but instead remains unchanged when applying the methods of the present embodiment. Both static content and batchable content (i.e., batch reports or report templates) can exist on different pages of a presentation or even within a single presentation page.
[0050] Exemplary embodiments: FIG. 3 shows a flow diagram 300 of a method for automatically generating a report according to one embodiment of the present invention. Flow diagram 300 is an exemplary embodiment of the present invention provided for illustrative purposes. Flow diagram 300 is described with respect to automatically generating a report related to flow cytometry data collected across multiple samples. Reports can be automatically generated by applying embodiments of the present invention using any convenient flow cytometry data that can be presented on a report (e.g., a report as described above or exemplified by report 200 of FIG. 2 ), such as light scatter data or fluorescent marker data associated with any convenient sample, which may vary. However, embodiments of the present invention are not so limited and may be used to automatically generate reports for collections of datasets other than flow cytometry data and / or collections of datasets other than flow cytometry data associated with multiple different samples.
[0051] Flow diagram 300 begins at step 310. From start step 310, the process proceeds to step 320.
[0052] At step 320, the user generates a report template. As previously discussed, a report template of the present invention provides a structure used to present data of interest. An embodiment of a report template can be thought of as a receptacle into which selected data is entered. However, the report template itself does not represent the output of an embodiment of the present invention, as instead, the report template is used to guide the generation of an instance of a batch report. As previously discussed, a batch report, in contrast to a report template, is automatically generated and reflects different selected data from a source group's data set.
[0053] A user can generate a report template using any convenient technique, such as manipulating and organizing a data visualization structure via the input and output devices of a computer system as described herein. In embodiments, a user can generate a report template including a plot that compares one aspect of the flow cytometry data, such as one type of fluorescent marker data presented on the x-axis of the plot, with another aspect of the flow cytometry data, such as another type of fluorescent marker data presented on the y-axis of the plot. In another example, a user-generated plot can compare an aspect of the imaged flow cytometry data, such as the eccentricity of an imaged particle presented on the x-axis of the plot, with a different spatial characteristic of the imaged flow cytometry data, such as the radial moment of the imaged particle presented on the y-axis of the plot. In general, such plots can present any convenient aspect of the flow cytometry data. Furthermore, a report template is not limited to one or more plots but can include any convenient data visualization structure, such as images (e.g., images of particles or cells), charts, tables, legends, text, etc. In such cases, a user can manipulate such data visualization structures as part of generating a report template to identify which aspects of the flow cytometry data should be presented. For example, a user can specify that a report template include charts presenting different summary statistics for different flow cytometry data.
[0054] In embodiments, a report template may include more than one data visualization structure, and may further include a variety of data visualization structures.
[0055] Once the report template generation is complete in step 320 , the flow diagram 300 then proceeds to step 330 .
[0056] In step 330, the user selects a source group and an iterator type. As previously mentioned, a source group refers to a collection of datasets, such as a collection of datasets resulting from collecting flow cytometry data from multiple samples. In other cases, the collection of datasets comprising a source group may include multiple different aspects of flow cytometry data obtained from a single sample, such as flow cytometry data from different time intervals, different detected light or imaging data, or any other aspect of flow cytometry data that can be detected using a flow cytometer, such as the flow cytometers described herein. In embodiments, any convenient technique may be applied to specify a source group. In some cases, the datasets of a source group may be stored and manipulated as computer files, such that a source group is specified by compiling a collection of files, such as ".fcs" files. In other cases, a source group may be identified and selected using an aspect of a user interface, such as a drop-down menu.
[0057] In step 330, the user also specifies an iterator type. As previously described, an iterator type refers to the type of data selected and used to populate the report (i.e., the aspects of the data set entered into each batch report). In embodiments, the user can specify that the iterator type corresponds to sample. In such a case, data from different samples of flow cytometry data present in the source group will be populated into each batch report. For example, if the report template includes a plot specifying two variables on the x-axis and y-axis, the user can select the iterator type to be sample, in which case different batch reports will be automatically generated, each presenting a plot with the selected variables on the x-axis and y-axis showing data from different samples in the source group.
[0058] Once the source group and iterator type selection is complete in step 330 , flow diagram 300 then proceeds to step 340 .
[0059] In step 340, it is determined whether the source group contains data sets that have not yet been processed (i.e., used to generate a batch report). That is, in the first instance that flow diagram 300 encounters step 340, flow diagram 300 enters a control loop in which each data set in the source group is processed (i.e., used to generate a corresponding batch report).
[0060] If there are remaining data sets in the source group to be processed, then the flow diagram 300 proceeds to step 350. If each data set in the source group has been processed, then the flow diagram proceeds to step 370.
[0061] In step 350, a new batch report is instantiated. Instantiating a new batch report means that a report template is newly copied or otherwise presented so that such report can be populated with data from the appropriate dataset. As previously mentioned, in step 340, flow diagram 300 enters a control loop that corresponds to the number of datasets contained in the source group. Thus, the number of batch reports (i.e., report template instantiations) resulting from application of flow diagram 300 corresponds to the number of datasets in the source group. That is, application of step 350 during the course of flow diagram 300 results in a batch report corresponding to each dataset in the source group.
[0062] Once the new batch report has been instantiated in step 350 , the flow diagram 300 then proceeds to step 360 .
[0063] In step 360, the batch report instantiated in step 350 is populated with data from the datasets. That is, available fields in the batch report instantiated in step 350 that can receive data corresponding to the selected iterator type are populated with data from the applicable datasets. (For example, batch reports 551a, 551b, 551c, and 551d of report 531 shown in FIG. 5, described below, are each populated with data from a dataset. Specifically, data corresponding to each axis of plot 511 in report template 521 is populated with data from each dataset, and each dataset corresponds to a sample (i.e., the iterator type is specified as sample).)
[0064] Once the instantiation of the new batch report is complete in step 350 , the flow diagram 300 then returns to step 340 .
[0065] As previously mentioned, if it is determined in step 340 that each data set in the source group has been processed and there are no remaining unprocessed data sets in the source group, then flow diagram 300 proceeds to step 370 .
[0066] In step 370, each batch report generated by application of steps 350 and 360 is displayed. Any convenient display can be used, such as a display on an output device comprising a screen or monitor, etc. In another example, in step 370, the multiple batch reports may be stored in a file that can be viewed by a user using available software, such as a portable document format (PDF) file.
[0067] Once the display of each batch report is complete in step 370, the flow diagram 300 then proceeds to step 380 where the flow diagram 300 ends.
[0068] 4A-4C show a flow diagram 400 of a method for automatically generating a report according to another embodiment of the present invention. Flow diagram 400 is an exemplary embodiment of the present invention provided for illustrative purposes. Flow diagram 400 is described with respect to automatically generating a report related to flow cytometry data collected across multiple samples. Reports can be automatically generated by applying embodiments of the present invention using any convenient flow cytometry data that can be presented in a report, such as, for example, light scatter data or fluorescent marker data associated with any convenient sample, which may vary. However, embodiments of the present invention are not so limited and may be used to automatically generate reports for collections of datasets other than flow cytometry data and / or collections of datasets other than flow cytometry data associated with multiple different samples.
[0069] Flow diagram 400 begins with step 410, seen in FIG. 4A. In step 410, input is collected from a user, and such input is ultimately used to specify aspects of an automatically generated report. In step 410, a report template is specified by the user. Report templates of interest, particularly those for use in displaying flow cytometry data, may include cell images, plots, charts, tables, legends, text, user-drawn objects, clip art, or any other convenient data visualization structures suitable for presenting flow cytometry data. A user can specify such characteristics and aspects of a report template using any convenient user interface. For example, a user can drag or import various data visualization structures described above onto a virtual page, i.e., a page presenting a report template (as opposed to a presentation page, which displays one or more batch reports, i.e., data-populated reports, as described herein). Any convenient format, structure, arrangement, style, or layout can be applied to generate a report template, which may vary depending on user preferences and the nature of the underlying data to be presented in the automatically generated report. In some cases, a user may place static content mixed with batchable content (i.e., content used to automatically generate reports). That is, a user may place content that is used in connection with the automatic generation of reports according to embodiments of the present invention, as well as content that remains fixed, static, or unchanged when the reports are automatically generated. The static content may be on a separate presentation page or may be on a presentation page that also includes batchable content.
[0070] Upon completion of step 410, flow diagram 400 then proceeds to step 420 shown in FIG. 4B.
[0071] In step 420, further manipulation and organization of data related to the report templates occurs. For example, a user can designate any presentation page as a batchable page, meaning that reports will be automatically generated based on the report templates present on that page. The user also specifies an iterator type to define how content will be automatically populated into each report template on the batchable page. Interpolator types are described above and include, for example, iteration by sample or keyword. Additionally, in step 420, the user specifies a tiling amount. The tiling amount means that the user specifies the number of automatically generated reports that can be presented on one presentation page. Thus, the total number of presentation pages used to present the automatically generated reports is equal to the number of data sets in the source group divided by the tiling amount.
[0072] Upon completion of step 420, flow diagram 400 then proceeds to step 430, shown in FIG. 4C.
[0073] In step 430, multiple batch reports are automatically generated based on the report template configured in step 410 and the input received in step 420. The batch reports may be intermixed with static pages or content (i.e., presentation pages or other content included in or surrounding the report template that were not automatically generated in either case). Any convenient arrangement may be specified or created by the user. Each batch report automatically generated in step 430 is based on the structure of the report template specified in step 410. That is, the report layout is preserved across each automatically generated report and presentation page. The reports may be saved to a computer file on any convenient non-transitory computer-readable storage medium. In certain embodiments, a user can save presentation pages with automatically generated reports using Becton, Dickinson and Company's FlowJo™ software; for example, automatically generated reports can be saved in the workbench aspect of Becton, Dickinson and Company's FlowJo™ 11 software. In embodiments, a user can export presentation pages along with the automatically generated reports in another file format, such as a Portable Document Format (PDF) file or a Microsoft PowerPoint file.
[0074] Once step 430 is completed, flow diagram 400 ends.
[0075] 5A-5G show a flow diagram 500 of a method for automatically generating a report according to another embodiment of the present invention. Flow diagram 500 is an exemplary embodiment of the present invention provided for illustrative purposes. Flow diagram 500 is described with respect to automatically generating a report related to flow cytometry data collected across multiple samples. Reports can be automatically generated by applying embodiments of the present invention using any convenient flow cytometry data that can be presented in a report, such as, for example, light scatter data or fluorescent marker data associated with any convenient sample, which may vary. However, embodiments of the present invention are not so limited and may be used to automatically generate reports for collections of datasets other than flow cytometry data and / or collections of datasets other than flow cytometry data associated with multiple different samples.
[0076] The embodiment shown in Figures 5A-5G is used to present data from a study related to COVID immune responses. In such a study, a flow cytometer was used to analyze 16 different samples and collect the resulting data. The embodiment shown in Figures 5A-5G is used to generate automated reports presenting aspects of such data, such as 16 separate reports associated with each of the 16 samples.
[0077] Flow diagram 500 begins at step 510. In step 510, a user provides input specifying aspects of a report template 521. Such aspects specified or input by the user include exemplary plots 511 that provide structure for the presentation of data in an automatically generated report. Specifically, plots 511 are configured by the user to show particular aspects of the flow cytometry data collected in connection with this experiment along the x- and y-axes. The user also specifies the placement of plots 512. These four plots 512 represent replicates from a particular sample, such as "replicate by parameter" or "replicate by population" to select subpopulations of the primary sample.
[0078] Plots such as plot 511 are used in connection with generating report template 521, although in other cases a user may provide other input to generate a report template such as cell images, plots, charts, tables, legends, text, user-drawn objects, clip art, or any other convenient data visualization structure suitable for presenting flow cytometry data.
[0079] In addition to the plot 511 and layout 512, the user can specify a legend 513 that contains descriptive information about the automatically generated plot. In particular, the legend 513 presents information about samples that were separately analyzed using flow cytometry techniques, and the results of that analysis include multiple data sets for a source group.
[0080] Upon completion of step 510, flow diagram 500 then proceeds to step 520 shown in FIG. 5B.
[0081] In step 520, the data entered in step 510 is manipulated by the user to generate a report template 521. In particular, the plots 511 and layouts 512 entered by the user in step 510 are arranged and entered into the report template 521. The report template 521 includes the layout of the plots 511, the layout of the plots 512, and the legend 513 entered by the user as input in step 510. The report template 521 is generated as a result of arranging, arranging, or organizing such elements, along with any other desired text, graphics, etc., that may be desired in a final presentation comprising an automatically generated report. The user may arrange, arrange, or organize such aspects of the report template 521 using any convenient technique, such as a user interface that allows drag-and-drop manipulation of visual aspects of the report template 521. In embodiments, aspects of the report template 521 may originate from other reports from other external sources.
[0082] Upon completion of step 520, flow diagram 500 then proceeds to step 530 shown in FIG. 5C.
[0083] In step 530, data is further entered or manipulated by the user to specify aspects of the batchable or static presentation (e.g., report template 521). The report template 521 generated in steps 510 and 520 forms part of presentation 531. In step 530, report template 521 is designated by the user as a batchable page. As discussed above, a batchable page contains templates, such as report template 521, that are used to guide the automated generation of batch reports, as discussed above. That is, all content on a batchable page is generated across as many additional presentation pages as necessary, based on the selected repeater type and number of tiles per page and the underlying data set of the source group. Report template 521 is designated by the user as a batchable page by selecting toggle button 534 to indicate that report template 521 is batchable.
[0084] Presentation 531 further includes static page 532. As previously discussed, static pages, such as static page 532, are not modified or otherwise manipulated in connection with the automatic generation of reports. Static page 532 includes, for example, a title page for providing information related to presentation 531, i.e., all automatically generated reports, as opposed to information specific to each report. Static page 532 is designated as such by a user by deselecting the corresponding toggle button to indicate that static page 532 is static and not batchable. Presentations according to embodiments of the presentation invention, such as presentation 531, can include multiple intermixed static and batchable pages.
[0085] Upon completion of step 530, flow diagram 500 then proceeds to step 540 shown in FIG. 5D.
[0086] In step 540, further data is entered by the user to specify parameters for automatically generating the report. Specifically, the user interacts with interface 549, which includes one aspect of a user interface. By interacting with interface 549, the user selects a source group and an iterator type to define how the report will be automatically generated (541). The source group and iterator type are each selected from drop-down menus in interface 549 (541). In the illustrated embodiment, the source group includes samples that will be iterated in connection with the automatic generation of the report. Also in the illustrated embodiment, the iterator type is specified as sample. The user further specifies the number of tiles per page (542) from another aspect of interface 549. As previously mentioned, selecting the number of tiles per page limits the number of pages required to display the batch results. In the example shown in FIGS. 5A-5G, 16 samples are available, so selecting four tiles per page means that four report pages will be automatically generated, with four batched, i.e., automatically generated, reports per page. Finally, once the above information has been entered as desired by the user, the user initiates automatic generation of the report by clicking the "Batch" button (543).
[0087] Upon completion of step 540, flow diagram 500 then proceeds to step 550 shown in FIG. 5E.
[0088] In step 550, reports 551a-551d of automatically generated presentation 531 are output for display to the user. When the reports are automatically generated, presentation 531 includes a static page 532 and four automatically generated pages of reports 551a-551d. Each of the automatically generated pages of reports 551a-551d presents four plots, each corresponding to one of the 16 samples for which flow cytometry data was collected in connection with this experiment. That is, each automatically generated page of reports 551a-551d includes data populated from each of the 16 samples specified in the source group in step 540. That is, each of pages 551a-551d includes repeated content from the 16 samples in the source group.
[0089] Once step 550 is completed, flow diagram 500 ends 599 .
[0090] Additional reference information related to flow diagram 500 is provided in FIGS. 5F-5G. FIG. 5F illustrates an example user interface 560 displaying components for generating and configuring a report template 521 for presentation 531 before a user clicks a "Batch" button 543 to automatically generate a batch report. In FIG. 5F, the report template 521 for presentation 531 is presented in the context of a collection of menu options 561 and an interface 549. FIG. 5F also illustrates how a user interacts with menu options 561, interface 549, and static / batch toggle button 534 to configure the report template 521 for presentation 531. As seen in FIGS. 5F-5G, the automatically generated pages for presentation 531 are based on the report template 521. Furthermore, the report template 521 and its properties may be added or otherwise manipulated through the user interface as seen in FIGS. 5F-5G, including by manipulating menu options 561. In either case, the user is free to design and configure the report template 521 in any convenient way that allows relevant information from each data set in the source group to be presented. Multiple pages of the presentation 531 can be added, configured, or otherwise manipulated, for example, by clicking on page indicators 532, 521.
[0091] 5G shows an exemplary user interface 570 that displays components for configuring and manipulating aspects of presentation 531 and its batch reports 551a, 551a1, 551b1, 551c1, and 551d1 after a batch report is automatically generated when a user clicks "Batch" button 543. As a result of the user clicking "Batch" button 543 to automatically generate the batch report, presentation 531 is expanded to include batch report pages 551a1, 551b1, 551c1, and 551d1, in addition to static page 532, which remains unchanged after the automatic report is generated. As discussed above in connection with step 550 of FIG. 5E, because there are 16 samples and the number of tiles per page is set to four, four batch report pages are automatically generated. User interface 570 includes thumbnails near the bottom of pages 532, 551a1, 551b1, 551c1, and 551d1 of presentation 531, and clicking on one of the thumbnail images displays a larger version of such page 551a corresponding to thumbnail page 551a1. In FIG. 5G, the thumbnail for report page 551a1 has been clicked, resulting in an enlarged batch report 551a, as shown.
[0092] 6A-6H show a flow diagram 600 of a method for automatically generating a report in accordance with yet another embodiment of the present invention. Flow diagram 600 is an exemplary embodiment of the present invention provided for illustrative purposes. Flow diagram 600 is described with respect to automatically generating a report related to flow cytometry data collected across multiple samples. Reports can be automatically generated by applying embodiments of the present invention using any convenient flow cytometry data that can be presented in a report, such as, for example, light scatter data or fluorescent marker data associated with any convenient sample, and such may vary. However, embodiments of the present invention are not so limited and may be used to automatically generate reports for collections of datasets other than flow cytometry data and / or collections of datasets other than flow cytometry data associated with multiple different samples.
[0093] 6A-6H illustrate flow diagram 600 by showing the state of interface 601 during various steps of flow diagram 600. That is, FIGS. 6A-6H show interface 601 from a user's perspective throughout the process of applying flow diagram 600 to automatically generate batch reports.
[0094] Flow diagram 600 begins with step 610, shown in Figure 6A. In step 610, a user interacts with interface 601 to create and configure a static title page 611 for presentation 631. Specifically, the user interacts with aspects of interface 601 to add text boxes to static page 611, to set static page 611 to be in landscape mode, and to name presentation 631, which ultimately includes the batch reports automatically generated in connection with the application of flow diagram 600.
[0095] Once the static page creation is complete in step 610 shown in FIG. 6A, flow diagram 600 then proceeds to step 620 shown in FIG. 6B.
[0096] 6B, the user interacts with the interface 601 to add a second page 621 to the presentation 631. The second page 621 follows the first page 611 of the presentation 631. In step 620, the second page 621 is completely blank.
[0097] Once the addition of the second page is complete in step 620 shown in FIG. 6B, the flow diagram 600 then proceeds to step 630 shown in FIG. 6C.
[0098] In step 630 shown in Figure 6C, a user interacts with interface 601 to add a plot 633 to the second page 621 of presentation 631. Plot 633 is added to second page 621 by dragging and dropping 632 from one part of interface 601 onto second page 621. In the figure, MVP stands for minimum variable product.
[0099] Once the plots have been added in step 630 shown in FIG. 6C, the flow diagram 600 then proceeds to step 640 shown in FIG. 6D.
[0100] 6D , the user interacts with interface 601 to further configure plot 633 by specifying whether plot 633 is associated with only one or more groups, populations, or samples of data. In the case of plot 633, the user can specify that plot 633 is associated with only a single sample and can include annotations including, for example, the sample name, whether or not the data is gated, and count information (i.e., the count of events detected by the flow cytometer displayed in plot 633).
[0101] Once construction of plot 633 is complete in step 640 shown in Figure 6D, flow diagram 600 then proceeds to step 650 shown in Figure 6E.
[0102] 6E, in step 650, the user interacts with interface 601 to specify that second page 621, including plot 633, is batchable. That is, by selecting the batch option on batch toggle icon 634, the user specifies that second page 621 with plot 633 is to be treated as a report template. That is, application of flow diagram 600 automatically generates a batch report that is an instance of second page 621 with plot 633 (together with the report template).
[0103] Once the second page 621 containing the plot 633 has been designated as batchable in step 650 shown in Figure 6E, the flow diagram 600 then proceeds to step 660 shown in Figure 6F.
[0104] In step 660 shown in Figure 6F, the user interacts with interface 601 to configure aspects of the batch-enabled second page 621 (i.e., the report template). In particular, the user interacts with portions of interface 601 to select a source group 661 (i.e., the data to use in creating each batch report); select a repeater type 662 (in the example shown in selection 662, the repeater type is set to repeat samples only); and select a starting sample 663 (i.e., which sample will initially be used to automatically populate the batch report).
[0105] Once configuration of aspects of the batchable second page 621 (ie, report template) is complete in step 660 shown in Figure 6F, the flow diagram 600 then proceeds to step 670 shown in Figure 6G.
[0106] Batch reporting (i.e., automatically generating a batch report) is initiated at step 670 shown in FIG. 6G. To begin the process of generating a batch report, the user clicks on the "Batch" button 643. As previously described, the iterator type 662 is set to iterate by sample. The result is an automatically generated report that is batched by sample. In the illustrated example, seven different samples 641 are available, with the current sample being highlighted in the list of samples 641.
[0107] Once the initiation of automatic batch report generation is complete at step 670 shown in Figure 6G, flow diagram 600 then proceeds to step 680 shown in Figure 6H.
[0108] 6H, in step 680, batch reports 683 (i.e., automatically generated reports) of presentation 631 are displayed on interface 601. Interface 601 also displays an enlarged version of one of the automatically generated reports 683 for further review and manipulation or configuration by the user, if desired. In the illustrated example, seven samples were used, so the resulting presentation 631 includes seven automatically generated report pages 683 and a single static page 611.
[0109] The flow diagram 600 ends 699 when the display of the batch reports 683 (ie, automatically generated reports) for the presentation 631 is completed in step 680 shown in FIG. 6H.
[0110] Flow cytometry data acquisition: As noted above, embodiments of the present invention may be applied to data collected using any convenient flow cytometer, such as those described herein. In some embodiments, data for presentation on automatically generated (i.e., batch) reports generated using embodiments of the present invention may include light scattering data from particles of a sample collected by analyzing such particles with a flow cytometer (i.e., conventional flow cytometry). Furthermore, in some cases, data for presentation on batch reports generated using embodiments of the present invention may include imaging data collected using any convenient imaging technology, such as an imaging flow cytometer. Techniques for collecting such light scattering data and / or image data, for example, by application of a flow cytometer, are further described below.
[0111] Flow cytometry: A flow cytometer typically includes a sample reservoir for receiving a fluid sample, such as a sample containing particles, e.g., cells, for sorting or analysis, and a sheath reservoir containing a sheath fluid. The flow cytometer directs the sheath fluid toward a flow cell, transporting particles in the fluid sample (e.g., cells from the sample) to the flow cell as a cell stream. To characterize components in the flow stream, light is irradiated onto the flow stream. Variations in the material within the flow stream, such as morphology or the presence of fluorescent labels, can cause variations in the observed light, allowing for characterization and, in some cases, separation. Particles, such as molecules in fluid suspension, analyte-bound beads, or individual cells, pass through a detection region where the particles are exposed to excitation light, typically from one or more lasers, and the particles' light scattering and fluorescence properties are measured. Particles or their components are typically labeled with fluorescent dyes to facilitate detection. By labeling different particles or components with spectrally distinct fluorescent dyes, multiple different particles or components can be detected simultaneously. In some implementations, the analyzer includes multiple detectors, one for each scattering parameter being measured and one or more for each distinct dye being detected. For example, some embodiments include a spectral configuration in which two or more sensors or detectors are used per dye. The resulting data includes the measured signal for each of the light scattering detectors and the fluorescence emission. In certain embodiments, the flow cytometry assay can detect a signal indicative of the presence of a labeled secondary antibody in the sample.
[0112] light source: As summarized above, a sample (e.g., in a flow cytometer stream) can be illuminated with light from a light source. In some embodiments, the light source is a broadband light source, emitting light having a wide range of wavelengths, including those ranging from 50 nm or greater, e.g., 100 nm or greater, e.g., 150 nm or greater, e.g., 200 nm or greater, e.g., 250 nm or greater, e.g., 300 nm or greater, e.g., 350 nm or greater, e.g., 400 nm or greater, and 500 nm or greater. 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, the broadband light source protocol of interest can include, but is 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, a superluminescent light emitting diode, a semiconductor light emitting diode, a broadband LED white light source, a multi-LED integrated white light source, or any combination thereof, among other broadband light sources.
[0113] In other embodiments, the method comprises irradiating with a narrowband light source that emits a specific wavelength or narrow range of wavelengths, for example, a light source that emits light in a narrow range, such as a range of 50 nm or less, for example, 40 nm or less, for example, 30 nm or less, for example, 25 nm or less, for example, 20 nm or less, for example, 15 nm or less, for example, 10 nm or less, for example, 5 nm or less, for example, 2 nm or less (including light sources that emit specific wavelengths of light (i.e., monochromatic light)). When the method comprises irradiating with a narrowband light source, the narrowband light source protocol of interest may include, but is not limited to, a narrow wavelength LED, laser diode, or broadband light source coupled to one or more optical bandpass filters, diffraction gratings, monochromators, or any combination thereof.
[0114] In certain embodiments, the method includes irradiating the sample with one or more lasers. As mentioned above, the type and number of lasers will depend on the sample and the desired light to be collected, and may 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 cases, the method includes irradiating the flowstream with a dye laser, such as a stilbene, coumarin, or rhodamine laser. In yet another example, 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 yet another example, 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 thulium YAG laser, a ytterbium YAG laser, a ytterbium 2O3 laser, or a cerium-doped laser, and combinations thereof.
[0115] The sample may be illuminated with one or more of the aforementioned light sources, e.g., two or more light sources, e.g., three or more light sources, e.g., four or more light sources, e.g., five or more light sources, including ten or more light sources. The light source may include any combination of light source types. For example, in some embodiments, the method includes illuminating the sample of the flow stream with an array of lasers, such as an array having one or more gas lasers, one or more dye lasers, and one or more solid state lasers.
[0116] The sample may be irradiated with a wavelength in the range of 200 nm to 1500 nm, e.g., 250 nm to 1250 nm, e.g., 300 nm to 1000 nm, e.g., 350 nm to 900 nm (including 400 nm to 800 nm). For example, if the light source is a broadband light source, the sample may be irradiated with a wavelength in the range of 200 nm to 900 nm. In other cases, where the light source includes multiple narrowband light sources, the sample may be irradiated with a specific wavelength in the range of 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 in the 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 irradiated with a specific wavelength in the range of 200 nm to 700 nm, such as a laser array including the aforementioned gas lasers, excimer lasers, dye lasers, metal vapor lasers, and solid-state lasers.
[0117] When two or more light sources are used, the sample can be illuminated by the light sources simultaneously, sequentially, or a combination thereof. For example, each light source may illuminate the sample simultaneously. In other embodiments, the flow stream is illuminated sequentially by each of the light sources. When two or more light sources are used to sequentially illuminate the sample, the time for which each light source illuminates the sample can independently be 0.001 microseconds or more, such as 0.01 microseconds or more, such as 0.1 microseconds or more, such as 1 microseconds or more, such as 5 microseconds or more, such as 10 microseconds or more, such as 30 microseconds or more, including 60 microseconds or more. For example, the method may include illuminating the sample with a light source (e.g., a laser) for a duration ranging from 0.001 microseconds to 100 microseconds, such as 0.01 microseconds to 75 microseconds, such as 0.1 microseconds to 50 microseconds, such as 1 microsecond to 25 microseconds, including 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.
[0118] The time period between illumination by each light source can also be independently variable, 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., 10 microseconds or more, e.g., 15 microseconds or more, e.g., 30 microseconds or more, and e.g., 60 microseconds or more, as desired. For example, the time period between illumination by each light source can range from 0.001 microseconds to 60 microseconds, e.g., 0.01 microseconds to 50 microseconds, e.g., 0.1 microseconds to 35 microseconds, e.g., 1 microsecond to 25 microseconds, and e.g., 5 microseconds to 10 microseconds. In certain embodiments, the time 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.
[0119] The sample can be illuminated continuously or at discrete intervals. In some cases, the method includes continuously illuminating the sample with the light source. In other cases, the sample is illuminated by the light source at discrete intervals, including every 0.001 milliseconds, 0.01 milliseconds, 0.1 milliseconds, 1 millisecond, 10 milliseconds, 100 milliseconds, and 1000 milliseconds, or at some other interval.
[0120] Depending on the light source, the sample may be illuminated from a variety of distances, such as 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, such as 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 (including 50 mm or more), and the angle of illumination may be variable in the range of 10° to 90°, for example 15° to 85°, for example 20° to 80°, for example 25° to 75°, for example 30° to 60°, for example 90°.
[0121] In certain embodiments, the method includes irradiating the sample with two or more frequency-shifted light beams. A light beam generator component having a laser and an acousto-optical device for frequency-shifting the laser light can be used. In these embodiments, the method includes irradiating the acousto-optical device with a laser. Depending on the desired wavelength of light produced in the output laser beam (e.g., for use in irradiating a sample in a flow stream), the laser can have a specific wavelength between 200 nm and 1500 nm, e.g., between 250 nm and 1250 nm, e.g., between 300 nm and 1000 nm, e.g., between 350 nm and 900 nm (including 400 nm and 800 nm). The acousto-optical device may be irradiated with one or more lasers, e.g., two or more lasers, e.g., three or more lasers, e.g., four or more lasers, e.g., five or more lasers, or may include ten or more lasers. The lasers may include a combination of any type of laser. For example, in some embodiments, the method includes irradiating the acousto-optical device with an array of lasers, such as an array having one or more gas lasers, one or more dye lasers, and one or more solid-state lasers.
[0122] When two or more lasers are used, the acousto-optical device can be illuminated by the lasers simultaneously, sequentially, or a combination thereof. For example, the acousto-optical device can be illuminated by each of the lasers simultaneously. In other embodiments, the acousto-optical device is illuminated sequentially by each of the lasers. When two or more lasers are used to sequentially illuminate the acousto-optical device, the time for which each laser illuminates the acousto-optical device can independently be 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., 10 microseconds or more, e.g., 30 microseconds or more, including 60 microseconds or more. For example, the method can include illuminating the acousto-optical device with the laser for a period ranging from 0.001 microseconds to 100 microseconds, e.g., from 0.01 microseconds to 75 microseconds, e.g., from 0.1 microseconds to 50 microseconds, e.g., from 1 microsecond to 25 microseconds, inclusive. 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.
[0123] The time period between illumination by each laser can also be independently variable, 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., 10 microseconds or more, e.g., 15 microseconds or more, e.g., 30 microseconds or more (including 60 microseconds or more), as desired. For example, the time period between illumination by each light source can range from 0.001 microseconds to 60 microseconds, e.g., 0.01 microseconds to 50 microseconds, e.g., 0.1 microseconds to 35 microseconds, e.g., 1 microsecond to 25 microseconds, and e.g., 5 microseconds to 10 microseconds. In certain embodiments, the time 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.
[0124] The acousto-optic device can be illuminated continuously or at discrete intervals. In some examples, the method includes continuously illuminating the acousto-optic device with a laser. In other examples, the acousto-optic device is illuminated with a laser 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 at some other interval.
[0125] Depending on the laser, the acousto-optic device may be illuminated from a variety of distances, such as 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 (including 50 mm or more), and the angle of illumination may be variable in the range of 10° to 90°, for example 15° to 85°, for example 20° to 80°, for example 25° to 75°, for example 30° to 60°, for example 90°.
[0126] In an embodiment, a 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, such as 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 one hundred or more high frequency drive signals, may be applied to the acousto-optic device to generate an output laser beam with a desired number of angularly deflected laser beams.
[0127] 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 a high frequency drive signal having an amplitude sufficient to produce an angularly deflected laser beam having a desired intensity. In some examples, each of the applied high frequency drive signals independently has an amplitude of about 0.001 V to about 500 V, e.g., 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, including about 5 V to about 25 V. In some embodiments, each of the applied high frequency drive signals has a frequency of about 0.001 MHz to about 500 MHz, 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, including about 5 MHz to about 50 MHz.
[0128] 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 may be separated by 0.001 μm or more, e.g., 0.005 μm or more, e.g., 0.01 μm or more, e.g., 0.05 μm or more, e.g., 0.1 μm or more, e.g., 0.5 μm or more, e.g., 1 μm or more, e.g., 5 μm or more, e.g., 10 μm or more, e.g., 100 μm or more, e.g., 500 μm or more, e.g., 5,000 μm or more, including 1,000 μm or more. In some embodiments, the angularly deflected laser beams overlap with adjacent angularly deflected laser beams along the horizontal axis of the output laser beam. The overlap between adjacent angularly deflected laser beams (e.g., overlap of beam spots) may be an overlap of 0.001 μm or more, such as 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, such as an overlap of 5 μm or more, for example an overlap of 10 μm or more, including an overlap of 100 μm or more.
[0129] Photodetector: Aspects of the method include collecting scattered light or fluorescence with a light detector, such as a fluorescence detector. The fluorescence detector, in some examples, can be configured to detect fluorescent emission from fluorescent molecules associated with particles in the flow cell, e.g., labeled specific binding members (e.g., labeled antibodies that specifically bind to markers of interest). In certain embodiments, the method includes detecting fluorescence from the sample with one or more fluorescence detectors, including two or more, three or more, four or more, five or more, six or more, seven or more, eight or more, nine or more, ten or more, fifteen or more, and even twenty-five or more fluorescence detectors. In embodiments, each of the fluorescence detectors is configured to generate a fluorescence data signal. Fluorescence from the sample can be detected by each fluorescence detector independently over one or more wavelength ranges from 200 nm to 1200 nm. In some instances, the method includes detecting fluorescence from the sample over a wavelength range, e.g., 200 nm to 1200 nm, e.g., 300 nm to 1100 nm, e.g., 400 nm to 1000 nm, e.g., 500 nm to 900 nm (including 600 nm to 800 nm). In other instances, the method includes detecting fluorescence with each fluorescence detector at one or more specific wavelengths. For example, fluorescence may be detected at one or more of 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, depending on the number of different fluorescence detectors in the subject optical detection system. In certain embodiments, the method includes detecting wavelengths of light corresponding to the fluorescence peak wavelengths of specific fluorophores present in the sample. In an embodiment, the fluorescence flow cytometer data is received from one or more fluorescence detectors (e.g., one or more detection channels), such as two or more, such as three or more, such as four or more, such as five or more, such as eight or more, including six or more fluorescence detectors (e.g., eight or more detection channels).
[0130] The light from the sample may be measured at one or more wavelengths, for example 5 or more different wavelengths, for example 10 or more different wavelengths, for example 25 or more different wavelengths, for example 50 or more different wavelengths, for example 100 or more different wavelengths, for example 200 or more different wavelengths, for example 300 or more different wavelengths, including measuring light collected at 400 or more different wavelengths.
[0131] The collected light can be measured continuously or at discrete intervals. In some cases, the method includes measuring the light continuously. In other examples, the light is measured at discrete intervals, including measuring the light every 0.001 milliseconds, 0.01 milliseconds, 0.1 milliseconds, 1 millisecond, 10 milliseconds, 100 milliseconds, and 1000 milliseconds, or at some other interval.
[0132] Measurements of the collected light may be made one or more times during the subject method, such as two or more times, such as three or more times, such as five or more times, and ten or more times. In certain embodiments, light propagation is measured two or more times, and the data for a particular instance is averaged.
[0133] In certain embodiments, the method includes spectrally resolving light from each fluorophore of a fluorophore-biomolecule pair in the sample. In some embodiments, the overlap between each different fluorophore is determined, and the contribution of each fluorophore to the overlapping fluorescence is calculated. In some embodiments, spectrally resolving the light from each fluorophore includes calculating a spectral unmixing matrix of the fluorescence spectra for each of multiple fluorophores having overlapping fluorescence in the sample detected by the light detection system. In certain examples, spectrally resolving the light from each fluorophore and calculating the spectral unmixing matrix for each fluorophore can be used to estimate the abundance of each fluorophore, for example, to determine the abundance of target cells in the sample.
[0134] In certain embodiments, the method includes spectrally decomposing the light detected by the plurality of photodetectors, e.g., as described in U.S. Pat. No. 11,009,400, U.S. Patent Application Publication No. 20210247293, and U.S. Patent Application Publication No. 20210325292, the disclosures of which are incorporated herein by reference in their entireties. For example, spectrally decomposing the light detected by the plurality of photodetectors in the second set of photodetectors may include solving the spectral unmixing matrix using one or more of: 1) a weighted least squares algorithm; 2) a Sherman-Morrison iterative inverse updater; 3) an LU matrix decomposition, e.g., where a matrix is decomposed into a product of a lower triangular (L) matrix and an upper triangular (U) matrix; 4) a modified Cholesky decomposition; 5) a QR factorization; and 6) a weighted least squares algorithm via singular value decomposition. In certain embodiments, the method further includes characterizing spillover diffusion of the light detected by the plurality of photodetectors, for example, as described in U.S. Patent Application Publication No. 20210349004, the disclosure of which is incorporated herein by reference.
[0135] In certain cases, the abundance of fluorophores associated with a target particle (e.g., chemically associated (i.e., covalently, ionically) or physically associated) is calculated from the spectrally resolved light from each fluorophore associated with the particle. For example, in one example, the relative abundance of each fluorophore associated with the target particle is calculated from the spectrally resolved light from each fluorophore. In another example, the absolute abundance of each fluorophore associated with the target particle is calculated from the spectrally resolved light from each fluorophore. In certain embodiments, particles can be identified or classified based on the relative abundance of each fluorophore determined to be associated with the particle. In these embodiments, particles can be identified or classified by any convenient protocol, for example, by comparing the relative or absolute abundance of each fluorophore associated with the particle to a control sample having particles of known identity, or by performing spectroscopic or other assay analysis of a population of particles (e.g., cells) having calculated relative or absolute abundances of associated fluorophores.
[0136] In certain embodiments, the method may include sorting one or more particles (e.g., cells) of a sample identified based on the estimated abundance of a fluorophore associated with the particle. The term "sorting" is used herein in its conventional sense to refer to separating components of a sample (e.g., droplets containing cells, droplets containing non-cellular particles such as biological macromolecules) and, in some instances, delivering the separated components to one or more sample collection vessels. For example, the method may include sorting two or more components of a sample, e.g., three or more components, e.g., four or more components, e.g., five or more components, e.g., ten or more components, e.g., fifteen or more components, including sorting 25 or more components of a sample.
[0137] In sorting particles identified based on the abundance of a fluorophore associated with the particle, the method includes data acquisition, analysis, and recording, using a computer or the like, where multiple data channels record data from each detector used to obtain overlapping spectra of multiple fluorophore-biomolecule reagent pairs associated with the particle. In these embodiments, the analysis includes spectrally decomposing (e.g., by calculating a spectral unmixing matrix) light from multiple fluorophores in fluorophore-biomolecule reagent pairs having overlapping spectra associated with the particle, and identifying the particle based on the estimated abundance of each fluorophore associated with the particle. This analysis can be communicated to a sorting system configured to generate a set of digitized parameters based on the particle classification. In some embodiments, the method for sorting components of a sample comprises sorting particles (e.g., cells in a biological sample), as described, for example, in U.S. Pat. Nos. 3,960,449; 4,347,935; 4,667,830; 5,245,318; 5,464,581; 5,483,469; 5,602,039; 5,643,796; 5,700,692; 6,372,506; 6,809,804, the disclosures of which are incorporated herein by reference. In some embodiments, the method includes sorting components of the sample with a particle sorting module, such as those described in U.S. Patent Nos. 9,551,643 and 10,324,019, U.S. Patent Application Publication No. 2017 / 0299493, and International Patent Application Publication No. WO 2017 / 040151, the disclosures of which are incorporated herein by reference. In certain embodiments, cells of the sample are sorted using a sort determination module having multiple sort determination units, such as those described in U.S. Patent No. 11,085,868, the disclosure of which is incorporated herein by reference.
[0138] Flow cytometry assay procedures are well known in the art. See, for example, 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, the disclosures of which are incorporated herein by reference. Syst. 24(3):203-255. In certain embodiments, flow cytometry assays of the compositions include using a flow cytometer capable of simultaneous excitation and detection of multiple fluorophores, such as a BD Biosciences FACSCanto™ flow cytometer, used substantially according to the manufacturer's instructions. Methods of the present disclosure may include imaging cytometry, such as those described in Holden et al. (2005) Nature Methods 2:773 and Valet et al. 2004 Cytometry 59:167-171, the disclosures of which are incorporated herein by reference.
[0139] Suitable flow cytometry systems include those described in Ormerod (ed.), Flow Cytometry: A Practical Approach, Oxford University 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, but are not limited thereto.In particular examples, flow cytometry systems of interest include 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, 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 BD Biosciences FACSMelody™ cell sorter, BD Biosciences FACSymphony™ S6 cell sorter, etc.
[0140] In some embodiments, the subject methods may be performed using methods described in U.S. Pat. Nos. 10,663,476, 10,620,111, 10,613,017, 10,605,713, 10,585,031, 10,578,542, 10,578,469, 10,481, 10,5 ... Specification No. ,074, Specification No. 10,302,545, Specification No. 10,145,793, Specification No. 10,113,967, Specification No. 10,006,852, Specification No. 9,952,076 Specification No. 9,933,341, Specification No. 9,726,527, Specification No. 9,453,789, Specification No. 9,200,334, Specification No. 9,097,640, Specification No. 9 ,095,494 specification, 9,092,034 specification, 8,975,595 specification, 8,753,573 specification, 8,233,146 specification, 8,140,30 Specification No. 0, Specification No. 7,544,326, Specification No. 7,201,875, Specification No. 7,129,505, Specification No. 6,821,740, Specification No. 6,813,017, Specification No. This includes applying a flow cytometry system such as those described in US Pat. Nos. 6,809,804, 6,372,506, 5,700,692, 5,643,796, 5,627,040, 5,620,842, 5,602,039, 4,987,086, and 4,498,766.
[0141] In certain instances, the flow cytometry systems of the present invention may be similar to those described in Diebold, et al. Nature Photonics Vol. 7(10); 806-810 (2013), the disclosures of which are incorporated herein by reference, as well as 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, The present invention is configured to image particles in a flow stream by fluorescence imaging using radiofrequency tagged emission (FIRE) techniques, such as those described in U.S. Patent Publication Nos. 2017 / 0133857, 2017 / 0328826, 2017 / 0350803, 2018 / 0275042, 2019 / 0376895, and 2019 / 0376894. According to embodiments of the present invention, image data may include flow cytometry data of labeled particles, e.g., cells, obtained via the FIRE protocol using a FACSDiscover flow cytometer, e.g., as described in Schraivogel et al., Science Vol. 375(6578);315-320(2022). Image data can be obtained in part from fluorophores that have little effect on other detectors, such as the conjugated polymer dyes BB515, BB550, and BB790 (BD Biosciences).
[0142] Imaging flow cytometry: In connection with acquiring cytometry imaging data for analysis (and ultimately for presentation in a report, such as the batch report described herein), in certain instances, the flow stream is illuminated with multiple frequency-shifted light beams, as previously described, and particles, e.g., cells, in the flow stream are imaged using a frequency-shifted optical beam as described in Diebold et al., Nature Photonics, the disclosure of which is incorporated herein by reference. Vol.7(10);806-810(2013) and 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, and 10,451,538 As described in the specification, US Patent No. 10,620,111, and US Patent Application Publication Nos. 2017 / 0133857, 2017 / 0328826, 2017 / 0350803, 2018 / 0275042, 2019 / 0376895, and / or 2019 / 0376894, the flow cytometry data may be captured by fluorescence imaging using radio frequency tag emission (FIRE) to generate a frequency-encoded image. In such cases, the flow cytometry data may include image data of particles, such as cells, present in the sample. See, for example, Schraivogel et al., Science Vol. 375(6578) pp. 315-320(2022), the disclosures of which are incorporated herein in their entireties, and U.S. Provisional Patent Application No. 63 / 256,974, the disclosures of which are incorporated herein in their entireties.
[0143] Computer-implemented embodiment: The various method and algorithm steps described in connection with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability between hardware and software, various exemplary steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system applying the methods according to the present disclosure. The described functionality can be implemented in various ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
[0144] The various exemplary steps, components, and computing systems (e.g., devices, databases, interfaces, and engines) described in connection with the embodiments disclosed herein may be implemented or performed by machines such as general-purpose processors, graphic processor units, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be a controller, microcontroller, or state machine, combinations thereof, or the like. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in combination with a DSP core, or any other such configuration. While described herein primarily with reference to digital technology, a processor may also include primarily analog components. The computing environment may include any type of computer system, including, but not limited to, computer systems based on microprocessors, graphic processor units, mainframe computers, digital signal processors, portable computing devices, personal organizers, device controllers, and computational engines within appliances.
[0145] The steps of a method, process, or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or a combination of the two. The software modules, engines, and associated databases may reside in memory resources such as RAM memory, FRAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of non-transitory computer-readable storage medium, medium, or physical computer storage device known in the art. An external storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. Alternatively, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. Alternatively, the processor and the storage medium may reside as discrete components in a user terminal.
[0146] system As summarized above, aspects of the present disclosure include systems for implementing the subject methods. According to certain embodiments, the system 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 receive input from an input device specifying a configuration of a report template, generate a report template based on the configuration received from the input device, receive input from the input device specifying a source group and a replicator type, the source group including a plurality of data sets, the replicator type corresponding to a type of data present in the source group, iteratively populate a plurality of batch reports using the plurality of data sets of the source group based on the replicator type, each batch report conforming to the report template and populated with a distinct data set of the plurality of data sets of the source group, and output the plurality of batch reports to an output device, wherein the processor and the memory are operatively connected to each of the input device and the output device.
[0147] 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 access memory containing instructions for executing the steps of the subject methods. 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, Python, R, Go, JavaScript, .NET, CUDA, Verilog, C++, other high-level or low-level languages, and combinations thereof, as known in the art. The operating system generally 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.
[0148] System memory may 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-and-write compact disk, flash memory devices, or other memory storage devices. The memory storage device may be any of a variety of known or future devices, including a compact disk drive, tape drive, removable hard disk drive, or diskette 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 floppy diskette, 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 called computer control logic, are typically stored in system memory and / or program storage devices used in conjunction with the memory storage devices.
[0149] In some embodiments, a computer program product is described that includes a computer-usable medium having stored thereon control logic (a computer software program including program code). The control logic, 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. Implementing a hardware state machine to perform the functions described herein will be apparent to one skilled in the art.
[0150] The memory may be any suitable device capable of storing and retrieving data, such as magnetic, optical, or solid-state storage devices (including magnetic or optical disks, tape, RAM, or any other suitable device, fixed or portable), by one or more general-purpose processors and multiple parallel processing units, such as graphics processors. A general-purpose processor may include a general-purpose digital microprocessor that is appropriately programmed from a computer-readable medium carrying the necessary program code. A parallel processing unit may include one or more graphics processors that are appropriately 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 on a computer program product, such as memory or some other portable or fixed computer-readable storage medium that uses any of these devices in conjunction with the memory. For example, a magnetic or optical disk may carry the program 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 floppy disks, hard disk storage media, and magnetic tape, optical storage media such as CD-ROMs, electrical storage media such as RAM, ROM, portable flash drives, and hybrids of these categories such as magnetic / optical storage media.
[0151] The one or more general-purpose processors may also have access to a communication channel for communicating with a remote user, where remote means that the user is not in direct contact with the system but relays input information to the input manager from an external device, such as a computer connected to a wide area network ("WAN"), telephone network, satellite network, or any other suitable communication channel, including a mobile phone (i.e., smartphone).
[0152] 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).
[0153] In one embodiment, the communications interface is configured to include one or more communications ports, e.g., a physical port or interface such as a USB port, an RS-232 port, or any other suitable electrical connection port that enables data communications between the subject system and other external devices, such as computer terminals (e.g., in a doctor's office or hospital environment) configured for similar complementary data communications.
[0154] 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 computer terminals and / or other devices such as networks, communication-enabled mobile phones, personal digital assistants, or any other communication device that a user may use in conjunction with.
[0155] In one embodiment, the communication interface is configured to provide connectivity for data transfer using Internet Protocol (IP), Short Message Service (SMS) over a cellular network, a wireless connection to a personal computer (PC) in a local area network (LAN) connected to the Internet, or a WiFi connection to the Internet at a WiFi hotspot.
[0156] In one embodiment, the subject system is configured to wirelessly communicate with a server device over a communications interface using common standards such as, for example, 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.
[0157] In some embodiments, the communications interface is configured to automatically or semi-automatically communicate data stored in the subject system, e.g., the optional data storage unit, with a network or server device using one or more of the aforementioned communications protocols and / or mechanisms.
[0158] 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 pixels. A graphical user interface (GUI) controller provides a graphical input / output interface between the system and the user and may include any of a variety of known or future software programs for processing user input. The functional elements of a computer may communicate with each other via a system bus. Some of these communications may be realized in alternative embodiments using a network or other type of remote communication. The output manager may also provide information generated by the processing modules to a remote user, for example, via the Internet, telephone, or satellite network, according to known techniques. Presentation of data by the output manager may be performed according to various known techniques. As some examples, the data may include SQL, HTML, or XML documents, emails, or other files, or other formats of data. The data may also 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 can be any type of known or future-developed computer platform, but they are typically computers of a class commonly referred to as servers. However, they may also 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 wireless systems, and may or may not be networked. They may be co-located or physically separated.In some cases, various operating systems may be employed on any computer platform depending on the type and / or manufacturer of the computer platform selected. Suitable operating systems include Windows 10, Windows NT, Windows XP, Windows 7, Windows 8, iOS, Oracle Solaris, Linux, OS / 400, Compaq Tru64 Unix, SGI IRIX, Siemens Reliant Unix, Ubuntu, Zorin OS, etc.
[0159] 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 . However, it is not necessary to illustrate all of these generally conventional elements to form a compelling disclosure. As illustrated, computing device 700 includes a processing unit 710, 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, processing unit 710 may receive information and instructions from other computing systems or services via a network. Processing unit 710 also communicates with memory 770 and may further communicate output information to optional display 750 via input / output device interface 740. The input / output device interface 740 can also accept 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.
[0160] Memory 770 may include computer program instructions (grouped in some embodiments as modules or components) that processing unit 710 executes to implement one or more embodiments. Memory 770 generally includes RAM, ROM, and / or other persistent, secondary, or non-transitory computer-readable media. Memory 770 may also store an operating system 772 that provides computer program instructions used by processing unit 710 in the general management and operation of computing device 700. Memory 770 may further include computer program instructions and other information for implementing aspects of the present disclosure.
[0161] For example, in one embodiment, memory 770 includes a report template processing module 774 for generating one or more aspects of a report template as described above, and a batch report processing module 776 for generating batch reports by populating instances of the report template with data applicable to the report template.
[0162] computer-readable storage medium Aspects of the present disclosure further include non-transitory computer-readable storage media having instructions for implementing the subject methods. The computer-readable storage medium may be employed by one or more computers for fully or partially automating systems for implementing 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 floppy disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tape, non-volatile memory cards, ROMs, DVD-ROMs, Blu-ray disks, solid-state disks, and network-attached storage (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 may be written in one or more of any number of computer programming languages, including, for example, Java (Sun Microsystems, Inc., Santa Clara, Calif.), Visual Basic (Microsoft Corp., Redmond, Wash.), C++ (AT&T Corp., Bedminster, New Jersey), Python, as well as many others.
[0163] In some embodiments, a target computer-readable storage medium includes a computer program stored thereon, the computer program including instructions, when loaded into a computer, having: an algorithm for generating a report template based on input from a user; an algorithm for selecting a source group and an iterator type based on input from the user, wherein the source group includes multiple datasets and the iterator type corresponds to a type of data present in the source group; and an algorithm for iteratively populating multiple batch reports using the multiple datasets of the source group based on the iterator type, wherein each batch report conforms to the report template and is populated with a separate dataset from the multiple datasets of the source group.
[0164] usefulness The subject systems, methods, and non-transitory computer-readable storage media find use in a variety of applications where it is desirable to visualize data, such as large or multiple data sets. For example, embodiments are used to visualize data obtained using a flow cytometer to analyze one or more samples. The subject systems, methods, and non-transitory computer-readable storage media find use in applications where a presentation or report is desired to present data, such as the results of an analysis using a flow cytometer. The subject systems, methods, and non-transitory computer-readable storage media find use in applications involving conducting one or more experimental processes with one or more control groups and one or more experimental groups, where it is desirable to display the results associated with each such group separately using any convenient data visualization technique for analysis of the experimental results.
[0165] The following are provided by way of example and not limitation.
[0166] experiment FIG. 8 illustrates an excerpt of a user interface 800 for configuring a report template 821 and aspects of presentation 831 via menu 861, interface 849, and static / batchable toggle button 834. The excerpt of user interface 800 is taken from an embodiment of Becton, Dickinson, and Company's FlowJo™ 11 software. Such software is designed to allow a user to designate entire pages, such as pages of presentation 831 corresponding to report template 821, as batchable (also called repeatable). In contrast to mail merge examples 110 and 150 shown in FIG. 1 , any content on a presentation 831 page that includes a report template 821 that can be batched is batched upon generation of report template 821 and upon clicking the "Batch" button in interface 849. That is, any content on report template 821 that can receive data from a data set of a source group is populated with such data. In an embodiment, batchable content includes text, images, overlays, charts, etc., generated and configured by a user interacting with interface 800. Again, in contrast to the mail merge examples 110 and 150 shown in Figure 1, embodiments of the present invention as shown in Figure 8 do not rely on specifying fields using hashtags or other semantics to declare such fields capable of bulk output from iterative processing of data stored in, for example, a linked list or spreadsheet. Instead, embodiments of the present invention require the user to create a report template 821 and select an iterator type for iterating over the data set of a source group.
[0167] 9A-9B illustrate an example of generating a report template in a presentation and automatically generating a batch report using such a template, according to one embodiment of the present invention. In FIG. 9A, interface 900 shows a report template 921 created by a user using tools available through interface 901, such as scalable drag-and-drop functionality including plots or text boxes for simple annotation. The user can configure report template 921, for example, by interacting with menu options 961. FIG. 9B shows interface 900 displaying the results of automatically generating a batch report, including presentation 931 containing multiple batch reports (i.e., automatically generated), including batch report 951 (i.e., automatically generated), which is highlighted and expanded within interface 900 for further configuration as desired by the user. The batch report 931 shown in FIG. 9B was generated by iterating over samples only. Furthermore, the batch report 931 shown in FIG. 9B was added to the presentation in a manner that does not include tiling; that is, each page of presentation 931 contains one batch report.
[0168] Notwithstanding the appended claims, the present disclosure is also defined by the following paragraphs.
[0169] 1. A computer-implemented method for automatically generating a report, comprising: generating a report template based on input from a user; selecting a source group and an iterator type based on input from a user, the source group including multiple data sets and the iterator type corresponding to the type of data present in the source group; recursively populating a plurality of batch reports using the plurality of data sets of the source group based on an iterator type, each batch report conforming to a report template and populated with a distinct data set of the plurality of data sets of the source group; 11. A computer-implemented method comprising:
[0170] 2. The computer-implemented method of claim 1, wherein the report template comprises a data visualization structure.
[0171] 3. The computer-implemented method of clause 2, wherein the data visualization structure includes an image, a plot, a chart, a table, a legend, or text.
[0172] 4. The computer-implemented method of paragraph 3, wherein the image is an image of a cell.
[0173] 5. The computer-implemented method of any one of paragraphs 2 to 4, wherein generating a report template based on input from a user includes receiving a configuration of a data visualization structure from the user.
[0174] 6. The computer-implemented method of any one of paragraphs 1 to 5, wherein the step of iteratively populating a plurality of batch reports includes automatically identifying aspects of the report template that correspond to the iterator type.
[0175] 7. The computer-implemented method of any one of paragraphs 1 to 6, wherein the report template is configured to present the flow cytometry data.
[0176] 8. The computer-implemented method of any one of paragraphs 1 to 7, wherein each dataset of the source group comprises flow cytometry data.
[0177] 9. The computer-implemented method of paragraph 8, wherein the flow cytometry data includes light scatter or marker data, or a combination thereof.
[0178] 10. The computer-implemented method of claim 9, wherein the light scatter data includes forward scatter or side scatter, or a combination thereof.
[0179] 11. The computer-implemented method of any one of paragraphs 9 to 10, wherein the marker data comprises fluorescence emission data.
[0180] 12. The computer-implemented method of any one of paragraphs 8 to 11, wherein the flow cytometry data comprises data obtained by analyzing a sample by flow cytometry.
[0181] 13. The computer-implemented method of paragraph 12, wherein each data set in the source group includes flow cytometry data corresponding to a different sample.
[0182] 14. The computer-implemented method of paragraph 12, wherein each data set in the source group includes flow cytometry data corresponding to a different statistical value.
[0183] 15. The computer-implemented method of paragraph 12, wherein each data set in the source group comprises flow cytometry data corresponding to a different measurement.
[0184] 16. The computer-implemented method of paragraph 12, wherein each data set in the source group includes flow cytometry data corresponding to a different interval.
[0185] 17. The computer-implemented method of any one of clauses 1 to 16, further comprising receiving a data set of a source group.
[0186] 18. The computer-implemented method of any one of paragraphs 1 to 17, wherein selecting a source group comprises selecting a source group from a drop-down menu.
[0187] 19. The computer-implemented method of any one of clauses 1 to 18, wherein the iterator type identifies a category of data present in the source group.
[0188] 20. The computer-implemented method of any one of clauses 1 to 19, wherein the iterator type identifies a category of data that can vary across multiple data sets of a source group.
[0189] 21. The computer-implemented method of any one of paragraphs 1 to 20, wherein the iterator type selects the type of data used to populate the multiple batch reports.
[0190] 22. The computer-implemented method of any one of clauses 1 to 21, wherein the iterator type selects a type of data that varies across multiple batch reports.
[0191] 23. The computer-implemented method of any one of clauses 1 to 22, wherein the batch report is iteratively populated by an iterator type.
[0192] 24. The computer-implemented method of any one of paragraphs 1 to 23, wherein the repeater type determines whether the batch report is recursively populated by sample, keyword, statistic, or interval.
[0193] 25. The computer-implemented method of paragraph 24, wherein the step of iteratively populating the batch report with samples includes iterating over the samples of the source group.
[0194] 26. The computer-implemented method of claim 24, wherein the step of iteratively populating the batch report with keywords includes iterating over the keywords of the source group.
[0195] 27. The computer-implemented method of claim 24, wherein the step of recursively populating the batch report by interval includes the step of iterating over the interval of the source group.
[0196] 28. The computer-implemented method of claim 24, wherein the step of iteratively populating the batch report with statistical values includes iterating over the statistical values of the source group.
[0197] 29. The computer-implemented method of any one of clauses 1 to 28, wherein selecting an iterator type includes a user selecting an iterator type from a drop-down menu.
[0198] 30. The computer-implemented method of any one of paragraphs 1 to 29, further comprising the step of selecting the number of reports to include on the presentation page.
[0199] 31. The computer-implemented method of any one of clauses 1 to 30, further comprising generating static content based on input from a user.
[0200] 32. The computer-implemented method of clause 31, wherein the static content is not automatically populated.
[0201] 33. The computer-implemented method of any one of clauses 1 to 32, further comprising the step of specifying, based on input from a user, that an aspect of the presentation page includes a report template.
[0202] 34. The computer-implemented method of any one of clauses 1 to 33, further comprising specifying, based on input from a user, that an aspect of the presentation page includes static content.
[0203] 35. A system for automatically generating reports, comprising: A method for implementing a method of implementing a computer-implemented program comprising: a processor; a memory operatively coupled to the processor; the memory including instructions stored therein, the instructions, when executed by the processor, causing the processor to: receiving input from an input device specifying a configuration for a report template; generating a report template based on the configuration received from the input device; receiving input from an input device specifying a source group and an iterator type, the source group including a plurality of data sets and the iterator type corresponding to a type of data present in the source group; recursively populating a plurality of batch reports using the plurality of data sets of the source group based on the iterator type, each batch report conforming to a report template and populated with a distinct data set of the plurality of data sets of the source group; Output multiple batch reports to an output device, The processor and memory are operatively connected to each of the input and output devices; system.
[0204] 36. The system of clause 35, wherein the report template comprises a data visualization structure.
[0205] 37. The system of clause 36, wherein the data visualization structure includes an image, a plot, a chart, a table, a legend, or text.
[0206] 38. The system of paragraph 37, wherein the image is an image of a cell.
[0207] 39. The system of any one of clauses 36 to 38, wherein generating a report template based on a configuration received from an input device includes receiving a configuration of a data visualization structure from the input device.
[0208] 40. The system of any one of paragraphs 35 to 39, wherein iteratively populating a plurality of batch reports includes automatically identifying aspects of the report template that correspond to the iterator type.
[0209] 41. The system of any one of paragraphs 35 to 40, wherein the report template is configured to present flow cytometry data.
[0210] 42. The system of any one of paragraphs 35 to 41, wherein each data set in the source group comprises flow cytometry data.
[0211] 43. The system of paragraph 42, wherein the flow cytometry data includes light scatter or marker data, or a combination thereof.
[0212] 44. The system of paragraph 43, wherein the light scatter data includes forward scatter or side scatter, or a combination thereof.
[0213] 45. The system of any one of paragraphs 43 to 44, wherein the marker data includes fluorescence emission data.
[0214] 46. The system of any one of paragraphs 42 to 45, wherein the flow cytometry data comprises data obtained by analyzing the sample by flow cytometry.
[0215] 47. The system of paragraph 46, wherein each data set in the source group includes flow cytometry data corresponding to a different sample.
[0216] 48. The system of paragraph 46, wherein each data set in the source group includes flow cytometry data corresponding to a different statistical value.
[0217] 49. The system of paragraph 46, wherein each data set in the source group includes flow cytometry data corresponding to a different measurement.
[0218] 50. The system of paragraph 46, wherein each data set in the source group includes flow cytometry data corresponding to a different interval.
[0219] 51. The system of any one of clauses 35 to 50, wherein the memory further includes instructions stored therein that, when executed by the processor, cause the processor to receive a data set of the source group from an input device.
[0220] 52. The system of any one of paragraphs 35 to 51, wherein specifying the source group includes receiving input based on selecting the source group from a drop-down menu.
[0221] 53. The system of any one of clauses 35 to 52, wherein the iterator type identifies a category of data present in the source group.
[0222] 54. The system of any one of clauses 35 to 53, wherein the iterator type identifies a category of data that can vary across multiple data sets of a source group.
[0223] 55. The system of any one of clauses 35 to 54, wherein the repeater type selects the type of data used to populate the multiple batch reports.
[0224] 56. The system of any one of clauses 35 to 55, wherein the repeater type selects the type of data that varies across multiple batch reports.
[0225] 57. The system of any one of clauses 35 to 56, wherein the batch report is recursively populated by an iterator type.
[0226] 58. The system of any one of paragraphs 35 to 57, wherein the repeater type determines whether the batch report is repetitively populated by sample, keyword, statistic, or interval.
[0227] 59. The system of paragraph 58, wherein iteratively populating the batch report with samples includes iterating over the samples of the source group.
[0228] 60. The system of claim 58, wherein iteratively populating the batch report with keywords includes iterating over the keywords of the source group.
[0229] 61. The system of paragraph 58, wherein iteratively populating the batch report with statistical values includes iterating over the statistical values of the source group.
[0230] 62. The system of paragraph 58, wherein repeatedly populating the batch report with statistical values includes repeating over intervals of the source group.
[0231] 63. The system of any one of clauses 35 to 62, wherein specifying the iterator type includes selecting the iterator type from a drop-down menu.
[0232] 64. The system of any one of clauses 35 to 63, wherein the memory further includes instructions stored therein that, when executed by the processor, cause the processor to receive, from the input device, a selection of several reports to be included on the presentation page.
[0233] 65. The system of any one of clauses 35 to 64, wherein the memory further includes instructions stored therein that, when executed by the processor, cause the processor to generate static content based on input from a user.
[0234] 66. The system of any one of paragraphs 35 to 65, wherein static content is not automatically populated.
[0235] 67. The system of any one of clauses 35 to 66, wherein the memory further includes instructions stored therein that, when executed by the processor, cause the processor to receive from the input device a designation that an aspect of the presentation page includes a report template.
[0236] 68. The system of any one of clauses 35 to 67, wherein the memory further includes instructions stored therein that, when executed by the processor, cause the processor to receive from the input device a designation that an aspect of the presentation page includes static content.
[0237] 69. The system of any one of paragraphs 35 to 68, further comprising an input device and an output device.
[0238] 70. A non-transitory computer-readable storage medium having stored thereon instructions for automatically generating a report, the instructions comprising: an algorithm for generating a report template based on input from a user; an algorithm for selecting a source group and an iterator type based on input from a user, the source group including multiple data sets and the iterator type corresponding to the type of data present in the source group; an algorithm for iteratively populating a plurality of batch reports using a plurality of data sets of a source group based on an iterator type, wherein each batch report conforms to a report template and is populated with a distinct data set of the plurality of data sets of the source group; 1. A non-transitory computer-readable storage medium comprising:
[0239] 71. The non-transitory computer-readable storage medium of claim 70, wherein the report template comprises a data visualization structure.
[0240] 72. The non-transitory computer-readable storage medium of claim 71, wherein the data visualization structure includes an image, a plot, a chart, a table, a legend, or text.
[0241] 73. The non-transitory computer-readable storage medium of paragraph 72, wherein the image is an image of a cell.
[0242] 74. The non-transitory computer-readable storage medium of paragraphs 71 to 73, wherein the algorithm for generating a report template based on input from a user includes an algorithm for receiving a configuration of a data visualization structure from the user.
[0243] 75. The non-transitory computer-readable storage medium of paragraphs 70 to 74, wherein the algorithm for iteratively populating a plurality of batch reports includes an algorithm for automatically identifying aspects of the report template that correspond to the iterator type.
[0244] 76. The non-transitory computer-readable storage medium of paragraphs 70 to 75, wherein the report template is configured to present the flow cytometry data.
[0245] 77. The non-transitory computer-readable storage medium of paragraphs 70 to 76, wherein each data set of the source group includes flow cytometry data.
[0246] 78. The non-transitory computer-readable storage medium of paragraph 77, wherein the flow cytometry data includes light scatter or marker data, or a combination thereof.
[0247] 79. The non-transitory computer-readable storage medium of paragraph 78, wherein the light scatter data includes forward scattered light or side scattered light, or a combination thereof.
[0248] 80. The non-transitory computer-readable storage medium of any one of paragraphs 78 to 79, wherein the marker data includes fluorescence emission data.
[0249] 81. The non-transitory computer-readable storage medium of any one of paragraphs 77 to 80, wherein the flow cytometry data comprises data obtained by analyzing a sample with a flow cytometer.
[0250] 82. The non-transitory computer-readable storage medium of paragraph 81, wherein each data set in the source group includes flow cytometry data corresponding to a different sample.
[0251] 83. The non-transitory computer-readable storage medium of paragraph 81, wherein each data set in the source group includes flow cytometry data corresponding to a different statistical value.
[0252] 84. The non-transitory computer-readable storage medium of paragraph 81, wherein each data set in a source group includes flow cytometry data corresponding to a different measurement.
[0253] 85. The non-transitory computer-readable storage medium of paragraph 81, wherein each data set in a source group includes flow cytometry data corresponding to a different interval.
[0254] 86. The non-transitory computer-readable storage medium of any one of clauses 70 to 85, further comprising an algorithm for receiving a data set of a source group.
[0255] 87. The non-transitory computer-readable storage medium of any one of paragraphs 70 to 86, wherein the algorithm for selecting a source group includes an algorithm for selecting a source group from a drop-down menu.
[0256] 88. The non-transitory computer-readable storage medium of any one of clauses 70 to 87, wherein the iterator type identifies a category of data present in the source group.
[0257] 89. The non-transitory computer-readable storage medium of any one of clauses 70 to 88, wherein the iterator type identifies a category of data that can vary across multiple data sets of a source group.
[0258] 90. The non-transitory computer-readable storage medium of any one of clauses 70 to 89, wherein the iterator type selects the type of data used to populate the multiple batch reports.
[0259] 91. The non-transitory computer-readable storage medium of any one of clauses 70 to 90, wherein the repeater type selects a type of data that varies across multiple batch reports.
[0260] 92. The non-transitory computer-readable storage medium of any one of clauses 70 to 91, wherein the batch report is recursively populated by an iterator type.
[0261] 93. The non-transitory computer-readable storage medium of any one of paragraphs 70 to 92, wherein the repeater type determines whether the batch report is repetitively populated by sample, keyword, statistic, or interval.
[0262] 94. The non-transitory computer-readable storage medium of paragraph 93, wherein the algorithm for iteratively populating the batch report with samples includes an algorithm for iterating over samples of a source group.
[0263] 95. The non-transitory computer-readable storage medium of claim 93, wherein the algorithm for iteratively populating the batch report by keywords includes an algorithm for iterating over keywords of a source group.
[0264] 96. The non-transitory computer-readable storage medium of claim 93, wherein the algorithm for repetitively populating the batch report by interval includes an algorithm for iterating over intervals of source groups.
[0265] 97. The non-transitory computer-readable storage medium of any of clause 93, wherein the algorithm for iteratively populating the batch report with statistical values includes an algorithm for iterating over the statistical values of the source group.
[0266] 98. The non-transitory computer-readable storage medium of any one of clauses 70 to 97, wherein the algorithm for selecting an iterator type includes an algorithm for receiving a user selection of an iterator type from a drop-down menu.
[0267] 99. The non-transitory computer-readable storage medium of any one of paragraphs 70 to 98, further comprising an algorithm for selecting the number of reports to include on a presentation page.
[0268] 100. The non-transitory computer-readable storage medium of any one of clauses 70 to 98, further comprising an algorithm for generating static content based on input from a user.
[0269] 101. The non-transitory computer-readable storage medium of claim 100, wherein the static content is not automatically populated.
[0270] 102. The non-transitory computer-readable storage medium of any one of clauses 70 to 101, further comprising an algorithm for specifying, based on input from a user, aspects of the presentation page to include a report template.
[0271] 103. The non-transitory computer-readable storage medium of any one of clauses 70 to 102, further comprising an algorithm for designating, based on input from a user, aspects of the presentation page as including static content.
[0272] Although the foregoing invention has been described in some detail by way of illustration and example for 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 without departing from the spirit or scope of the appended claims.
[0273] 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 the concepts the inventors have contributed to advancing 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. Furthermore, 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 as a dedication to the public, regardless of whether such disclosure is expressly recited in the claims.
[0274] 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. In the claims, 35 U.S.C. §112(f) or 35 U.S.C. §112(6) is expressly defined as being invoked for a limitation in a claim only if the exact phrase "means for" or the exact phrase "step" appears at the beginning of such limitation in the claim. If such exact phrases are not used in a claim limitation, 35 U.S.C. §112(f) or 35 U.S.C. §112(6) is not invoked.
[0275] 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 / 431,867, filed December 12, 2022, the disclosure of which is incorporated herein by reference in its entirety.
Claims
1. 1. A computer-implemented method for automatically generating a report, comprising: generating a report template based on input from a user; selecting a source group and an iterator type based on input from the user, the source group including multiple data sets and the iterator type corresponding to the type of data present in the source group; iteratively populating a plurality of batch reports using the plurality of data sets of the source group based on the iterator type, each batch report conforming to the report template and populated with a distinct data set of the plurality of data sets of the source group; 11. A computer-implemented method comprising:
2. The computer-implemented method of claim 1 , wherein the report template comprises a data visualization structure.
3. The computer-implemented method of claim 2 , wherein the data visualization structure comprises an image, a plot, a chart, a table, a legend, or text.
4. The computer-implemented method of claim 3 , wherein the image is an image of a cell.
5. The computer-implemented method of claim 2 , wherein generating a report template based on input from a user comprises receiving a configuration of the data visualization structure from the user.
6. 6. The computer-implemented method of claim 1, wherein the step of iteratively populating the plurality of batch reports includes automatically identifying aspects of the report template that correspond to the iterator type.
7. The computer-implemented method of claim 1 , wherein the report template is configured to present flow cytometry data.
8. The computer-implemented method of claim 1 , wherein each data set in the source group comprises flow cytometry data.
9. The computer-implemented method of claim 8 , wherein the flow cytometry data comprises light scatter or marker data, or a combination thereof.
10. The computer-implemented method of claim 1 , further comprising receiving a data set of the source group.
11. The computer-implemented method of claim 1 , wherein selecting the source group comprises selecting the source group from a drop-down menu.
12. The computer-implemented method of claim 1 , wherein the iterator type identifies a category of data present in the source group.
13. The computer-implemented method of claim 1 , wherein the iterator type identifies a category of data that can vary across the multiple data sets of the source group.
14. The computer-implemented method of claim 1 , wherein the repeater type selects the type of data used to populate the plurality of batch reports.
15. 1. A system for automatically generating reports, comprising: a processor, the processor comprising a memory operatively coupled to the processor, the memory including instructions stored therein, the instructions, when executed by the processor, causing the processor to: receiving input from an input device specifying a configuration for a report template; generating the report template based on the configuration received from the input device; receiving input from the input device specifying a source group and an iterator type, the source group including a plurality of data sets and the iterator type corresponding to a type of data present in the source group; recursively populating a plurality of batch reports using the plurality of data sets of the source group based on the iterator type, each batch report conforming to the report template and populated with a distinct data set of the plurality of data sets of the source group; causing an output device to output the plurality of batch reports to the output device; the processor and the memory are operatively connected to each of the input device and the output device; system.