Method and system for iterative batch processing of pictures through user setting parameters
By automatically generating reports, generating report templates based on user input and automatically filling in multiple batch reports, the problem of tedious manual operations in flow cytometry data visualization is solved, and efficient and flexible data visualization is achieved.
Patent Information
- Application Number
- CN202380092168.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-12-12
- Filing Date
- 2023-12-12
- Publication Date
- 2025-09-05
AI Technical Summary
In existing flow cytometry particle detection and analysis systems, generating reports for large data sets requires laborious, technical, and repetitive manual operations, lacking flexibility and automation, especially in the visualization of flow cytometry data.
Through the automatic report generation method, report templates are generated based on user input, source groups and iterator types are selected, and multiple batch reports are automatically filled with images, drawings, charts, tables or text, achieving highly flexible and automated data visualization.
It enables efficient and automated report generation for large data sets, reduces user manual configuration steps, improves the practicality and flexibility of data visualization, and is applicable to various data set types of flow cytometry data.
Smart Images

Figure CN120604109A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application Serial No. 63 / 431,867, filed on December 12, 2022; the entire disclosure of that application is incorporated herein by reference.
[0003] introduction
[0004] Flow particle detection and analysis systems, such as flow cytometers, are used to detect, analyze, and, in some cases, sort particles in a fluid sample based on at least one measured characteristic of the particles. Visualization of data obtained from flow particle detection and analysis systems plays an important role in understanding, analyzing, and characterizing the acquired data, and has found applications in, for example, biological and medical research.
[0005] Analyzing data obtained from a flow cytometric particle detection system may require data visualization, such as the display of a data graph. Often, it is useful to visualize various aspects of a flow cytometric experiment (e.g., flow cytometric analysis of different samples). Using data visualization techniques to analyze underlying data (e.g., flow cytometric data) can aid in understanding and characterizing particles (e.g., cells) of a sample exposed to the particle detection system, as well as understanding and characterizing particle populations or clusters of a sample.
[0006] In general, flow cytometry technology facilitates the acquisition of very large and very large datasets. Techniques for facilitating the display of such large or large datasets are important for enabling analysis of such data. Typically, such techniques require laborious, technical, and repetitive overhead to visualize or otherwise present such large or large datasets in a systematic manner. Summary of the Invention
[0007] Thus, the inventors have recognized that there remains a need for continued improvement in data visualization techniques, such as techniques for processing and subsequently visualizing large datasets in a substantially automated manner. In particular, there remains a need for automatically generating reports presenting data from multiple datasets, wherein each report is constructed based on a single design or template. Embodiments of the present invention address this need. This need is particularly applicable to flow cytometry data, given the large datasets and the large number of datasets associated with flow cytometry experiments.
[0008] As mentioned above, an advantage of flow cytometry is the ability to collect large data sets. Typically, a user will have many data files and want to create reports for any number of various data sets. Embodiments of the present invention achieve this functionality by introducing innovative techniques for visualizing large data sets (such as flow cytometry data) more effectively and efficiently in terms of minimizing and simplifying the steps required for a user to generate a report and in terms of flexibility in the configuration of displaying any number of data sets, data set types, and reports based on such data sets, thereby enhancing the practicality of data visualization techniques, especially the visualization of data collected by flow particle detection and analysis systems. The prior art in this area relates to text-based techniques, which, for example, involve manually configuring various fields to automatically fill in data from a spreadsheet. Automatically generating reports using embodiments of the present invention enables highly flexible and highly automated report generation, which is not limited to text-based techniques.
[0009] Aspects of the present disclosure include methods, systems, and non-transitory computer-readable storage media for automatically generating reports based on, for example, flow cytometry data. Methods for automatically generating reports according to certain embodiments include: generating a report template based on input from a user; selecting a source group and an iterator type based on input from a user, wherein the source group includes multiple data sets, and the iterator type corresponds to the type of data present in the source group; and based on the iterator type, iteratively populating multiple batch reports using the multiple data sets of the source group, wherein each batch report conforms to the report template and is populated using a separate data set from the multiple data sets of the source group. Aspects of the present disclosure also include methods for automatically generating reports, wherein such reports include one or more of images, drawings, charts, tables, legends, or text, and such reports are populated using data from one or more data sets.
[0010] Aspects of the present disclosure also include systems for implementing the subject method. According to certain embodiments, a system for automatically generating reports includes a processor, the processor including a memory operably coupled to the processor, wherein the memory includes instructions stored thereon, the instructions, when executed by the processor, causing the processor to: receive input specifying a configuration of a report template from an input device; generate the report template based on the configuration received from the input device; receive input specifying a source group and an iterator type from the input device, wherein the source group includes multiple data sets, and the iterator type corresponds to the type of data present in the source group; based on the iterator type, iteratively populate multiple batch reports using multiple data sets of the source group, wherein each batch report conforms to the report template and is populated using a single data set from the multiple data sets of the source group; and output the multiple batch reports to an output device, wherein the processor and the memory are operably connected to each of the input device and the output device.
[0011] Aspects of the present disclosure also include a non-transitory computer-readable storage medium including instructions stored thereon for implementing the subject method. 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 data source group and an iterator type based on input from the user, wherein the source group includes multiple data sets and the iterator corresponds to the type of data present in the source group; and an algorithm for iteratively populating multiple batch reports using the multiple data sets of the source group based on the iterator type, wherein each batch report conforms to the report template and is populated using a separate data set from the multiple data sets of the source group. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] The present invention is best understood from the following detailed description when read in conjunction with the accompanying drawings, which include the following figures:
[0014] Figure 1 An example of a prior art method for automatically filling text from a spreadsheet into a text document is depicted.
[0015] Figure 2 An exemplary embodiment of a report template according to aspects of the present invention is shown.
[0016] Figure 3 A flow chart of a method for automatically generating a report according to an embodiment of the present invention is shown.
[0017] Figures 4A to 4C A flow chart of a method for automatically generating a report according to another embodiment of the present invention is shown.
[0018] Figures 5A to 5G A flowchart of a method for automatically generating a report according to yet another embodiment of the present invention is shown.
[0019] Figures 6A to 6H A flow chart of a method for automatically generating a report according to yet another embodiment of the present invention is shown.
[0020] Figure 7 Depicted is a general architecture for an exemplary computing device in accordance with certain embodiments.
[0021] Figure 8 Shown are excerpts from a user interface for configuring aspects of an embodiment of the present invention.
[0022] Figures 9A to 9B An example of generating a report template in a presentation and automatically generating batch reports using such a template is shown according to an embodiment of the present invention. DETAILED DESCRIPTION
[0023] Aspects of the present disclosure include methods, systems, and non-transient computer-readable storage media for automatically generating reports showing, for example, flow cytometry data. The method for automatically generating reports 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 input from a user, wherein the source group includes multiple data sets, and the iterator type corresponds to the type of data present in the source group; and based on the iterator type, iteratively filling multiple batch reports using multiple data sets of the source group, wherein each batch report conforms to the report template and is filled using a separate data set in the multiple data sets of the source group. Aspects of the present disclosure also include methods for automatically generating reports, wherein such reports include one or more of an image, a plot, a chart, a table, a legend, or text, and such reports are filled using data from one or more data sets. A system for implementing the subject method is also provided. A non-transient computer-readable storage medium is also described.
[0024] Before describing the present invention in more detail, it should be understood that the present invention is not limited to the specific embodiments described, as variations are possible. It should also be understood that the terminology used herein is for the purpose of describing specific embodiments only and is not intended to be limiting, as the scope of the present invention will be limited only by the appended claims.
[0025] Where a range of values is provided, it is understood that each intervening value between the upper and lower limits of that range (to the tenth of the unit of the lower limit unless the context clearly dictates otherwise) and any other stated or intervening value in the stated range are 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 limits in the stated range. Where the stated range includes one or both limits, ranges excluding one or both of those included limits are also encompassed within the invention.
[0026] Certain ranges are given herein with numerical values preceded by the term "about." The term "about" is used herein to provide literal support for the exact number that precedes it, as well as a number that is near or approximately the number that precedes it. In determining whether a number is near or approximately a specifically recited number, the near or approximate unrecited number can be a number that, in the context in which it is presented, provides a substantial equivalent to the specifically recited number.
[0027] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Although any methods and materials similar or equivalent to those described herein can be used in the practice or testing of the present invention, representative illustrative methods and materials are now described.
[0028] All publications and patents cited in this specification are incorporated herein by reference to the same extent as if each individual publication or patent were specifically and individually indicated to be incorporated herein by reference and are incorporated herein by reference to disclose and describe the methods and / or materials related to the cited publications. 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 publication by virtue of prior invention. Furthermore, the dates of publication provided may differ from the actual publication dates, which may need to be independently confirmed.
[0029] It should be noted that, as used herein and in the appended claims, the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. Furthermore, it should be noted that claims can be drafted to exclude any optional element. Thus, this statement is intended to serve as antecedent basis for use of terminology such as "solely," "only," and the like in connection with the recitation of claim elements, or for use of a "negative" limitation.
[0030] As will be apparent to those skilled in the art after reading this disclosure, each of the various embodiments described and illustrated herein has discrete components and features that can be readily separated or combined with the features of any of the other several embodiments without departing from the scope or spirit of this disclosure. Any enumerated method may be performed in the order of events recited or in any other order that is logically possible.
[0031] Although the apparatus and methods have been or will be described using functional interpretations for grammatical fluency, it should be expressly understood that, unless expressly provided under 35 U.S.C. §112, the claims should not be construed as necessarily limited to "means" or "step" constraint constructions, but should be given the full scope of meaning and equivalents of the definitions provided by the claims under the doctrine of judicial equivalents, and if a claim is expressly provided under 35 U.S.C. §112, it should be given its full legal equivalents under 35 U.S.C. §112.
[0032] The present disclosure provides a method for automatically generating reports. In further describing an embodiment of the present disclosure, first, the method is described in more detail, the method 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, wherein the source group includes multiple data sets, and the iterator type corresponds to the type of data present in the source group, and based on the iterator type, iteratively populating multiple batch reports using the multiple data sets of the source group, wherein each batch report conforms to the report template and is populated using a separate data set from the multiple data sets of the source group. Next, a system for implementing the subject method is described. Non-transitory computer-readable storage media is also described.
[0033] 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 popular technique for automatically populating text in a template is Microsoft Word's "mail merge," which is used to populate fields of a template text document (i.e., a Microsoft Word document) using specified fields of a spreadsheet document (i.e., a Microsoft Excel document). Figure 1 An example of how this prior art technique automatically populates text from a spreadsheet into a text document is shown. A mail merge process 110 involves specifying fields in text documents 120a, 120b. Specifying fields in text documents 120a, 120b involves, for example, labeling each field with information that specifies the type of applicable data to be entered into such field. For example, a field in a text document may be designated as a "Name" field or a "Company" field. Upon activating the mail merge, the text stored in a spreadsheet 130 is used to populate such designated fields of the text document. That is, one or more mail merge documents are generated, wherein each designated field 120 includes corresponding data from the spreadsheet 130.
[0034] The "Mail Merge" process 150 of SendBlaster works similarly, wherein a text document 160 is annotated by the user to specify certain fields for automatic filling. The "Mail Merge" process 150 of SendBlaster also requires the user to specify a series of address lists (not shown) to be merged into the text document. After activating the "Mail Merge" process 150 of SendBlaster, one or more documents are generated, wherein the specified text fields of the one or more documents are filled with the relevant text from the address lists.
[0035] In each of these mail merge processes 110, 150, the user is required to specifically highlight the desired text document (i.e., annotate or "Insert a Merge Field" to specify the field). 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 specific format. In other words, such processes 110, 150 require many separate, detailed, and specific steps to set up the auto-population process. Furthermore, such techniques only work with text fields. That is, documents are automatically populated only with text data.
[0036] As described herein, embodiments of the present invention do not require such detailed, specific setup and configuration upfront. Instead, they allow users to generate report templates, designate them as batch-processable (also known as iterable, i.e., for automatic population of related data sets); and, due to the application of embodiments of the method according to the present invention, any content in such report templates that can be batch-processed (i.e., automatically populated) will be batch-processed. In embodiments, batch processing is managed through groups. In some instances, groups are partitions of data files that can be pre-configured with or without membership criteria. If configured without criteria, users can simply drag and drop data files into the group to determine which files will be batch-processed, without requiring any setup beyond creating the template. Alternatively, groups can 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 the former case, automatic assignment results in the definition of files to be batch-processed without requiring input from the user.
[0037] Furthermore, embodiments of the present invention are not limited to text, but can automatically generate data analysis reports with graphical representations of the data (e.g., graphs or drawings), either alone or in combination with text. These improvements to the technology provided by embodiments of the present invention will be further discussed herein.
[0038] method
[0039] As described above, a method for automatically generating a report is provided. According to certain embodiments, the 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, wherein the source group includes multiple data sets, and the iterator type corresponds to the type of data present in the source group; and iteratively populating multiple batch reports using the multiple data sets of the source group based on the iterator type, wherein each batch report conforms to the report template and is populated using a separate data set from the multiple data sets of the source group.
[0040] Report template:
[0041] In an embodiment, report template is generated by user.That is to say, for example, the user can interact with the user interface of any convenient computer system to draft or otherwise configure the desired format for displaying data of interest. As described herein, the report of interest includes a report showing the data set collected due to one or more samples analyzed by flow cytometry. In an embodiment, the report template specifies one or more aspects of the data to be displayed in the automatically generated report. For example, the report template can specify a drawing comprising a two-dimensional histogram of light intensity data, which corresponds to two different light wavelength ranges of interest in the experiment, for example. This report template definition is how the data from the available data sets are subsequently filled into a batch report (i.e., automatically generated report). That is to say, a batch report is an automatically generated report, which is a specific instance of a report template comprising (displaying) a desired data set.
[0042] In an embodiment, the report template includes a data visualization structure. By data visualization structure is meant any suitable form of displaying data, including a graphical representation of the data (e.g., one or more of an image, a drawing, a chart, a table, a legend, or text). As described above, a drawing of interest may include a histogram (e.g., a two-dimensional histogram) to display light intensity data corresponding to different aspects of light detected as a result of analyzing a sample by flow cytometry. 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 specify an image of a cell, wherein, as described herein, such an image is acquired by an imaging flow cytometer.
[0043] As described above, in an embodiment of the present invention, a report template is generated by a user. In such a case, generating a report template may include receiving a configuration of a data visualization structure from a user. Such one or more configurations may include an arrangement of one or more drawings, wherein the associated variables of interest will be displayed along each axis of the drawing based on the basic data set (e.g., flow cytometry data) to which an embodiment of the present invention is applied. In other cases, the configuration received from the user may include operating multiple data visualization structures, such as a drawing with text associated with the drawing, or a table associated with the drawing, or an image associated with the drawing. In an embodiment, a report template forms the basis of an automatically generated report (i.e., an instance of a report template (batch report) that is filled with data).
[0044] Example of a report template:
[0045] Figure 2 An exemplary embodiment of a report template according to aspects of the present invention is shown. Figure 2 Shown in the figure is a report template 200 including a drawing 210. Drawing 210 includes a two-dimensional histogram with an x-axis and a y-axis, each of which is associated with a different light intensity variable that is associated with a data set generated by analyzing a sample of interest using flow cytometry. Although drawing 210 is a report template and therefore does not need to be filled with data, in this case, drawing 210 shows flow cytometry data corresponding to the data set of the source group (e.g., previously collected flow cytometry data). As described above, embodiments of the method of the present invention automatically determine which aspects of the report template 210 can be filled with data from multiple data sets of the source group. That is, in an embodiment, by specifying the report template 210 itself, the user specifies which fields of the report can be filled with data from each data set of the source group. As described herein, which data is ultimately filled into the fields of the report template 210 also depends on the user's selection of the source group and the iterator type.
[0046] As further described below, the report template 200 is displayed on a presentation page 220. The presentation page 220 is a user-designed page that organizes the data to be presented to the consumer of the automatically generated report. Figure 2 In the illustrated embodiment, the presentation page 220 includes a legend 230 with features regarding the datasets (e.g., data regarding one or more samples) used to populate the automatically generated report. The information about the samples provided in the legend 230 may include, for example, the names of different biological samples analyzed using flow cytometry. The presentation page 220 also includes a layout 240 of reports (i.e., batch reports as described herein) that are automatically generated by applying an embodiment of the method of the present invention. Such a layout 240 includes an annotated arrow that indicates that such batch reports are generated in part by iteratively populating each such batch report using data from a dataset of a source group. These four plots 240 represent iterative content from a particular sample, such as "iteration by parameter" or "iteration by population" to select a subset of the original sample.
[0047] Source Group:
[0048] Embodiments of the method of the present invention also include selecting a source group and an iterator type based on input from a user. In these embodiments, the source group includes multiple data sets. That is, the source group can include multiple data sets, each data set corresponding to the results of analyzing different samples using a flow cytometer. That is, each data set of the source group can include different collections of flow cytometric data, which are, for example, collected due to analyzing different samples using flow cytometer. Any suitable number of data sets can be specified in the source group, and the number can vary. The number of data sets usually corresponds to various aspects of the basic experiment, for which flow cytometer analysis data is used, and the results need to be presented in the form of a collection of automatically generated reports (i.e., batch reports).
[0049] As described above, in certain embodiments, each data set of a source group includes flow cytometry data. In these embodiments, the flow cytometry data may include light scattering data or labeling data or a combination thereof or any other data that can be collected via, for example, a flow cytometer. In some cases, the light scattering data includes forward scattered light, side scattered light or a combination thereof. In other cases, the labeling data includes fluorescence emission data. As described above, in an embodiment, the flow cytometry data includes the data obtained due to analyzing a sample using flow cytometry. In an example, each data set of a source group includes the flow cytometry data corresponding to different samples. In some cases, each data set of a source group may include the flow cytometry data corresponding to different statistics, which are associated with the basic flow cytometry data. In certain instances, each data set of a source group may include the flow cytometry data corresponding to different measured values obtained using a flow cytometer to analyze one or more samples. In certain embodiments, each data set of a source group may include the flow cytometry data corresponding to different time intervals.
[0050] Embodiments of the present invention may also include receiving a dataset of a source group. For example, such a dataset may be received via an operable connection to any suitable flow cytometer system, or in other cases, such a dataset may correspond to a dataset collected from a flow cytometer at different times and places, wherein such results are recorded in a non-transitory computer-readable storage medium in the form of, for example, a ".fcs" file. In an embodiment, selecting a source group includes selecting the source group from a drop-down menu. That is, a user can select a source group or an aspect thereof (e.g., one or more datasets included in a source group) through any suitable user interface, which user interface includes a list or other display of available source groups or aspects thereof in the form of, for example, a drop-down menu.
[0051] Iterator Type:
[0052] In an embodiment, the iterator type corresponds to the type of data present in the dataset of the source group. That is, the iterator type specifies which aspect of each dataset (e.g., which variable or which data type, etc.) is to be displayed in each report automatically generated by the method according to the present invention. For example, in the context of flow cytometry data, the iterator type may specify a series of light intensity data to be displayed on each instance of the automatically generated report (i.e., batch report). Figure 2 In the context of the illustrated example report template 200, an iterator may include data associated with each of the x-axis and y-axis of a plot 210. In this example, the automatically generated plots (i.e., the plots of the batch report) present data on each x-axis and y-axis of each such generated plot corresponding to the iterator type for each data set of the source group.
[0053] In an embodiment, aspects of the report template corresponding to each iterator type can be automatically identified. That is, a user can specify specific data as an iterator type, and therefore, embodiments of the present invention automatically identify aspects of the report template associated with such iterator type. For example, in conjunction with Figure 2 , a user may specify in the report template 200 data associated with light detected as a result of analyzing data as flow cytometry data, and, based thereon, the x-axis and y-axis of the plot 210 may be identified as being applicable to the selected iterator type for the purpose of automatically generating multiple batch reports in accordance with the present invention.
[0054] With respect to automatically identifying report templates corresponding to iterator types, embodiments of the present invention may rely on an underlying database or other form of stored data for presentation according to a hierarchical analysis (e.g., flow cytometer experimental results, etc.). That is, data collected using a flow cytometer may be stored in a hierarchical manner, wherein such a hierarchy enables appropriate selection of data from the stored data to be inserted into the appropriate location in each batch report. For example, FlowJo by Becton, Dickinson and Company TMThe software includes a database displayed as an analysis hierarchy. This hierarchical form of data storage divides related data into groups for functional purposes based on metadata embedded in the original data or user files and the file system folder structure. In an embodiment, this hierarchical structure can be used to automatically populate relevant aspects of a report template using relevant data from the data store (including the data set of the source group). In addition, in an embodiment, the user can choose to manually create additional groupings that include a hierarchical structure for use when automatically populating fields of a report template using relevant (i.e., associated) data from such additional groupings. In an embodiment, the automatic generation of batch reports through iteration references this grouping structure. It is this aspect of hierarchical data storage that can alleviate the need for any further labeling or annotation (such as labeling or annotation of report templates, similar to the labeling or annotation of report templates in conjunction with the above Figure 1 In some embodiments, the user selects from a fixed number of iterator types, and any object placed on the page that can be iterated will be iterated. In other embodiments, the user can lock an object so that it will not be iterated or will be iterated under certain constraints (e.g., it will not iterate over a limited set of data, etc.). In some embodiments, the objects (e.g., graphs, tables, legends, etc.) that the user has placed on the page via drag / drop to form a report template are themselves similar to the labeled fields in the mail merge example above.
[0055] As described above, in an embodiment, the category, type or aspect of the data displayed in the iterator type identification source group.The example of a category includes the result obtained by analyzing the sample by collecting the light intensity data associated with the wavelength range of interest (such as those data associated with the fluorescent marker or light scattering data of interest). In other cases, the iterator type can identify the interesting statistic associated with the data of the source group. Any suitable statistic can be used. The example of such statistic includes the average light intensity or its maximum or minimum value measured within a specific range associated with each data set of the source group. In an embodiment, the iterator type identification can be the category of the data that can change between the multiple data sets of the source group. In certain embodiments, the iterator type selection is used to fill the type of data of multiple batch reports. That is to say, which data (i.e. which type of data, such as the measurement range of the light intensity of each sample associated with the data set of the source group) of the iterator type indication from the data set of the source group will be filled in each batch report and therefore displayed by each batch report.
[0056] An intuitive example of an iterator type is iteration by sample. In this example, a batch report is generated by populating each report instance 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., iteration by sample). Non-sample-based iteration is useful for allowing a user (e.g., an experimenter) to select specific files for a desired comparison (e.g., a desired biological comparison). In a large flow cytometry experiment, there may be a wide variety of files that provide different functionality and information. For example, filtering by keyword or statistic enables the user to effectively include only information relevant to the desired comparison.
[0057] Additionally, embodiments may provide for more comparisons, allowing users to compare between subpopulations or top-level groups, all associated with one or more samples. In embodiments, the format and appearance of the report page (i.e., batch report) will be constant regardless of the iteration or iterator type, but the content of each batch report will be affected because different data sets are used to populate each batch report.
[0058] In some cases, the iterator type selects the type of data that varies between batch reports: each batch report that is an instance of a report template is identical in all respects except for those aspects corresponding to the iterator type, which may vary depending on the data in the source group's dataset. In some embodiments, the batch reports are iteratively populated by iterator type. In this example, the iterative population can be viewed as a loop that iterates through each data point in the source group, extracting the data corresponding to the iterator type to display in the corresponding batch report. In this example, the number of batch reports can correspond to the number of datasets in the source group.
[0059] In an embodiment, the iterator type determines whether the batch report is populated iteratively by sample, by keyword, by statistic, or by time interval.
[0060] When the iterator type corresponds to sample, data from each dataset of the source group (i.e., each sample for which cytometry data was collected) is populated into each batch report. That is, in an embodiment, iterating over the samples of the source group includes iterating over the samples of the source group.
[0061] When the iterator type corresponds to a keyword, the keyword data from the data set of the source group is populated into each batch report. That is, in an embodiment, iteratively populating the batch report by keyword includes iterating over the keywords of the source group. As described above, the user can select an iterator type, after which options related to such an iterator type are presented to the user. For example, the user can select a keyword as the iterator type, after which potential keywords that can be used for iteration are presented to the user. Although keywords are derived from or otherwise associated with the base data, the keyword types provided to the user to be included in the report template can include a standard selection of potential keywords.
[0062] When the iterator type corresponds to a statistic, a specified statistic (such as one or more statistics summarized according to the data set of the source group or based on the data set from the source group) is filled in each batch report. That is to say, in an embodiment, filling the batch report by the statistic iteration includes iterating the statistics of the source group. In an embodiment, the user can specify a specific statistic of interest. As described above, the user can select the iterator type, and the interface on which the user is working afterwards shows the user the options related to such an iterator type. For example, the user can select a statistic as the iterator type, and then show the user the potential statistics that can be used for iteration. Although such statistics are derived from basic data, the type of statistics to be included in the report template provided for the user can include the standard selection of potential statistics. The selection of statistics can be based on the content that is most relevant to the basic data being analyzed and displayed, such as the basic biological problems proposed. Such basic considerations vary due to the experiment, and therefore require the user to specify the desired statistics based on each experiment.
[0063] When the iterator type corresponds to a time interval, the time interval (e.g., one or more time intervals present in the data set of the source group, such as one or more time periods for collecting flow cytometry data) is filled into each batch report. That is, in an embodiment, iteratively filling the batch report by time interval includes iterating the time interval of the source group. In an embodiment, the user specifies the time interval, which can be any desired time interval (e.g., flow cytometry data about the sample collected within the time interval). Generating batch reports by time interval (i.e., iterating by time interval) indicates that there is a regularity pattern within or between samples, and the regularity pattern is relevant to solving experimental problems (e.g., solving biological problems). In an embodiment, since such relevant time intervals can vary based on the underlying experiment, the user will specify what the regularity time interval is.
[0064] Similar to the mechanism described above in conjunction with selecting source group data, in an embodiment, selecting an iterator type includes the user selecting the iterator type from a drop-down menu. In addition, in an embodiment, the iterators that can be used to generate batch reports can be provided through a selection list component of the interface, which displays all available iterator types to the user. Based on the selected iterator, other feature settings are made available through such an interface.
[0065] Presentation of the report :
[0066] An embodiment of the method according to the present invention further comprises selecting the number of reports to be included on a presentation page. That is, as described above, applying the method according to the present invention results in the generation of a plurality of batch reports, i.e., instances of a report template using real or meaningful data (e.g., previously acquired flow cytometry data) are reflected in the batch report. Based on user preferences, the user can specify a single presentation page (e.g., Figure 2 A presentation page 220 of the embodiment of the present invention is a document to which the automatically generated batch reports are added (i.e., displayed). Such a presentation page may include a file (i.e., a data set stored on a non-transitory computer-readable storage medium) that reflects the output of an embodiment of the method according to the present invention, wherein such output is intended for or otherwise consumed by a user. Exemplary presentation pages may include, for example, PowerPoint presentation pages or pages of a portable document file (Portable Document File). By selecting the number of reports to be included on a single 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 the method according to the present invention using a source group comprising 16 data sets, each corresponding to a different sample, and the user may specify iteration by sample (i.e., setting the iterator type to sample) and further specify that there are four automatically generated batch reports per presentation page. In such an example, applying an embodiment of the present invention will result in the automatic generation of 16 batch reports, with four batch reports on each of the four presentation pages.
[0067] Unlike batch reports (which are automatically generated by applying an embodiment of the method according to the present invention), presentation pages can also include static content. Static content refers to any aspect of a presentation page that a user designates as static content, including data, reports, or other content. Static content is not populated with data from a source group and remains unchanged when applying the method of this embodiment. Static content and batch-processable content (i.e., batch reports or report templates) can be displayed on different presentation pages or even within a single presentation page.
[0068] Example embodiment:
[0069] Figure 3 A flowchart 300 for automatically generating a report according to an embodiment of the present invention is shown. Flowchart 300 is an exemplary embodiment provided for illustrative purposes of the present invention. Flowchart 300 is described from the perspective of automatically generating a report associated with flow cytometry data collected across multiple samples. Any suitable flow cytometry data associated with any suitable sample (e.g., light scatter data or fluorescent labeling data) can be used to automatically generate a report by applying embodiments of the present invention, wherein the flow cytometry data can be presented in a report (e.g., a report as described above or Figure 2 200 ), and such data may vary. However, embodiments of the present invention are not limited thereto and may be used to automatically generate reports for datasets other than flow cytometry data and / or other than flow cytometry data associated with multiple different samples.
[0070] Flowchart 300 begins at step 310. From step 310, the flow proceeds to step 320.
[0071] At step 320, the user generates a report template. As described above, the report template of the present invention provides a structure for presenting data of interest. Embodiments of a report template can be considered as containers into which selected data is input. However, a report template itself does not represent the output of embodiments of the present invention, as a report template is used to guide the generation of batch report instances. As described above, unlike a report template, a batch report is automatically generated and reflects the different data selected from the source group's datasets.
[0072] A user can generate a report template using any suitable technique (e.g., by manipulating and organizing data visualization structures through the input and output devices of a computer system as described herein). In one embodiment, a user can generate a report template that includes, for example, a plot that compares one aspect of flow cytometry data (e.g., data of one fluorescent marker) displayed on the x-axis of the plot with another aspect of the flow cytometry data (e.g., data of another fluorescent marker) displayed on the y-axis of the plot. In other embodiments, a user-generated plot can compare one aspect of imaged flow cytometry data (e.g., the eccentricity of the imaged particle) displayed on the x-axis of the plot with a different spatial characteristic of the imaged flow cytometry data (e.g., the radial moment of the imaged particle) displayed on the y-axis of the plot. In general, plots such as those described above can display any suitable aspect of flow cytometry data. Furthermore, a report template is not limited to one or more plots but can also include any suitable data visualization structure, such as an image (e.g., an image of a particle or cell), a chart, a table, a legend, text, etc. In such cases, a user can manipulate such a data visualization structure as part of generating a report template to identify which aspect of the flow cytometry data to display. For example, a user can specify that a report template include graphs that display different summary statistics for different flow cytometry data.
[0073] In an embodiment, a report template may include more than one data visualization structure, and may also include multiple data visualization structures.
[0074] After the generation of the report template is completed at step 320 , the flowchart 300 next moves to step 330 .
[0075] At step 330, the user selects a source group and an iterator type. As described above, a source group refers to a collection of data sets, such as a collection of data sets obtained by collecting flow cytometry data from multiple samples. In other cases, the collection of data sets that constitute a source group can include multiple different aspects of flow cytometry data obtained from a single sample, such as flow cytometry data from different time intervals or different light data or imaging data detected or any other aspect of flow cytometry data that can be detected using a flow cytometer (such as the flow cytometer described herein). In an embodiment, any suitable technique can be applied to specify a source group. In some cases, the data sets of a source group can be stored and manipulated as computer files so that a source group is specified by a collection of compiled files (such as ".fcs" files). In other cases, aspects of a user interface (such as a drop-down menu) can be used to identify and select a source group.
[0076] At step 330, the user also specifies an iterator type. As described above, an iterator type refers to the type of data that is selected and used to populate the report (i.e., various aspects of the data set entered into each batch report). In an embodiment, the user can specify that the iterator type corresponds to sample. In this case, data from different samples of flow cytometry data displayed in the source group are populated into each batch report. For example, where 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 batch report displaying a plot for the selected variable on the x-axis and y-axis to display data from different samples of the source group.
[0077] After completing the selection of the source group and iterator type at step 330 , flowchart 300 next moves to step 340 .
[0078] At step 340, a determination is made as to whether the source group includes any data sets that have not yet been processed (i.e., used to generate a batch report). That is, in the first instance in which flowchart 300 faces step 340, flowchart 300 enters a control loop in which each data set of the source group is processed (i.e., used to generate a corresponding batch report).
[0079] If there are data sets in the source group that remain to be processed, the flowchart 300 then moves to step 350 ; if every data set in the source group has been processed, the flowchart then moves to step 370 .
[0080] In step 350, a new batch report is instantiated. Instantiating a new batch report means that the report template is copied or otherwise re-presented so that data from the applicable dataset can be populated into such a report. As described above, at step 340, flowchart 300 enters a control loop corresponding to the number of datasets included in the source group. Therefore, the number of batch reports (i.e., instantiations of the report template) generated as a result of applying flowchart 300 corresponds to the number of datasets in the source group. That is, applying step 350 in the course of flowchart 300 will generate one batch report corresponding to each dataset in the source group.
[0081] After completing instantiation of the new report batch at step 350 , the flowchart 300 next moves to step 360 .
[0082] At step 360, the batch report instantiated at step 350 is populated with data from the datasets. That is, the available fields in the batch report instantiated at step 350 that are capable of receiving data corresponding to the selected iterator type are populated with data from the applicable datasets. (For example, each of batch reports 551a, 551b, 551c, 551d of report 531 shown in FIG. 5 described below is populated with data from the datasets. Specifically, each axis corresponding to plot 511 of report template 521 is populated with data from each dataset, where each dataset corresponds to a sample (i.e., where the iterator type is specified as sample)).
[0083] After completing instantiation of the new batch report at step 350 , the flowchart 300 then returns to step 340 .
[0084] As described above, at step 340 , when it is determined that each data set of the source group has been processed such that no data sets of the source group remain unprocessed, the flowchart 300 next moves to step 370 .
[0085] At step 370, each batch report generated by applying steps 350 and 360 is displayed. Any suitable display may be used, such as a display on an output device including a screen or monitor. In other cases, at step 370, the plurality of batch reports may be stored in a file that can be viewed by a user through available software, such as a portable document format (PDF) file.
[0086] After completing displaying each batch report at step 370 , the flowchart 300 next moves to step 380 , where the flowchart 300 ends.
[0087] Figures 4A to 4C Shown is a flow chart 400 of a method for automatically generating a report according to another embodiment of the present invention. Flow chart 400 is an exemplary embodiment of the present invention provided for illustrative purposes. Flow chart 400 is described from the aspect of automatically generating a report related to flow cytometry data collected across multiple samples. Any suitable flow cytometry data (e.g., light scattering data or fluorescent marker data) that can be displayed in a report related to any suitable sample can be automatically generated by applying an embodiment of the present invention to a report, and such flow cell chamber data can be different. However, embodiments of the present invention are not limited thereto, and can also be used to automatically generate a report for a data set set other than flow cytometry data and / or other than the flow cytometry data related to multiple different samples.
[0088] Flowchart 400 starts Figure 4AThe illustrated step 410 begins. At step 410, input is collected from the user, wherein such input is ultimately used to specify aspects of the automatically generated report. At step 410, the user specifies a report template. Report templates of interest, particularly report templates for displaying flow cytometry data, can include cell images, drawings, charts, tables, legends, text, objects drawn by the user, clip art, or any other suitable visual data structures for displaying flow cytometry data. The user can specify such characteristics and aspects of the report template using any suitable user interface. For example, the user can drag or import the various visual data structures described above to a virtual page, i.e., a page that displays a report template (rather than a display page that displays one or more batch reports (i.e., reports that have been filled with data) as described herein). Any suitable format, structure, arrangement, style, or layout can be applied to generate a report template, and can vary according to user preferences and the nature of the basic data to be displayed in the automatically generated report. In some cases, the user can mix static content with content that can be processed in batches (i.e., content for automatically generating reports). That is, the user can arrange the content for automatically generating reports according to an embodiment of the present invention, and keep fixed, static, or unchanged content when automatically generating reports. Static content can exist in a separate presentation page, or it can exist in a presentation page that also includes batchable content.
[0089] After completing step 410, the flowchart 400 then proceeds to Figure 4B Step 420 is shown.
[0090] At step 420, the data associated with the report template is further manipulated and configured. For example, a user can designate any presentation page as a batch-processable page, which means that a report will be automatically generated based on the report template present on such a presentation page. The user also specifies an iterator type to define how content is automatically populated into each report template of the batch-processable page. The iterator types of interest are as described above and include, for example, iteration by sample or by keyword. In addition, at step 420, the user specifies the number of tilings. The number of tilings refers to the number of automatically generated reports that the user specifies can be displayed on one presentation page. Therefore, the total number of presentation pages used to display the automatically generated reports is equal to the number of data sets of the source group divided by the number of tilings.
[0091] After completing step 420, the flowchart 400 then moves to Figure 4C Step 430 is shown.
[0092] At step 430, a plurality of batch reports are automatically generated based on the report template configured at step 410 and the input received at step 420. The batch reports can be mixed with static pages or static content (i.e., not in each case automatically generated presentation pages or other content included in or around the report template). The user can specify or create any suitable arrangement. Each batch report automatically generated at step 430 is based on the structure of the report template specified at step 410. That is, the layout of the report is preserved between each automatically generated report and presentation page. The reports can be saved to a computer file on any suitable non-transitory computer readable storage medium. In some embodiments, the user can use FlowJo TM The software saves the presentation page with the automatically generated report, for example, saving the automatically generated report to FlowJo from Becton Dickinson TM 11. The Workbench module of the software. In an embodiment, the user can export the presentation page with the automatically generated report in another file format, such as a portable document format (PDF) file or a Microsoft PowerPoint file.
[0093] After completing step 430 , flowchart 400 ends.
[0094] Figures 5A to 5G Shown is a flow chart 500 of a method for automatically generating a report according to another embodiment of the present invention. Flow chart 500 is an exemplary embodiment of the present invention provided for illustrative purposes. Flow chart 500 is described from the perspective of automatically generating a report related to flow cytometry data collected across multiple samples. Any suitable flow cytometry data (e.g., light scattering data or fluorescent marker data) that can be displayed on a report related to any suitable sample can be automatically generated by applying an embodiment of the present invention, and such flow cell chamber data can be different. However, embodiments of the present invention are not limited thereto, and can also be used to automatically generate a report for a collection of data sets other than flow cytometry data and / or other than the flow cytometry data related to multiple different samples.
[0095] Figures 5A to 5G The example shown in Figure 1 is used to demonstrate research data related to the immune response to the coronavirus (Covid). In such a study, 16 different samples were analyzed using flow cytometry and the resulting data were collected. Figures 5A to 5GThe embodiment shown in is for generating automatic reports that present aspects of such data in a manner that presents 16 reports associated with each of the 16 samples.
[0096] Flowchart 500 begins at step 510. At step 510, a user provides input 521 specifying aspects of a report template 521. Such aspects specified (i.e., input) by the user include exemplary plots 511 that provide structure for the presentation of data in the automatically generated report. Specifically, plots 511 are configured by the user to illustrate specific aspects of the flow cytometry data collected in connection with the present experiment along the x-axis and the y-axis. In addition, the user specifies an arrangement 512 of plots. These four plots 512 represent iterative content from a particular sample, such as selecting a subpopulation of the original sample via "iteration by parameter" or "iteration by population."
[0097] Although drawings such as drawing 511 are used in generating report template 521, in other cases, a user may provide other input to generate a report template, such as one or more of cell images, drawings, charts, tables, legends, text, user-drawn objects, clip art, or any other suitable visual data structure suitable for presenting flow cytometry data.
[0098] In addition to plot 511 and arrangement 512, the user can specify a legend 513 that includes explanatory information about the automatically generated plot. In particular, legend 513 presents information about samples that were individually analyzed using flow cytometry techniques, the results of which include multiple data sets from a source group.
[0099] After completing step 510, the flowchart 500 then moves to Figure 5B Step 520 is shown.
[0100] At step 520, the user manipulates the data entered at step 510 to generate a report template 521. Specifically, the drawing 511 and arrangement 512 entered by the user at step 510 are arranged and entered into report template 521. Report template 521 includes the arrangement of the drawing 511, arrangement of the drawing 512, and legend 513 entered by the user (in each case as input at step 510). By arranging, placing, or organizing these elements, as well as any other desired text, graphics, etc. that may be required for the final presentation of the automatically generated report, report template 521 is ultimately generated. The user may arrange, place, or organize such aspects of report template 521 using any suitable technique, such as via a user interface that allows dragging and dropping of visual aspects of report template 521. In embodiments, aspects of report template 521 may be derived from other reports from other external sources.
[0101] After completing step 520, the flowchart 500 then moves to Figure 5C Step 530 is shown.
[0102] At step 530, the user further inputs or manipulates data to specify various aspects of a batch-processable or static presentation (e.g., report template 521). The report template 521 generated at steps 510 and 520 includes a portion of presentation 531. At step 530, the user designates report template 521 as a batch-processable page. As described above, a batch-processable page includes a template (e.g., report template 521) for guiding the automatic generation of batch reports. That is, all content on the batch-processable page will be generated on as many additional presentation pages as needed based on the selected iterator type, the number of slices per page, and the underlying data set of the source group. The user designates report template 521 as a batch-processable page by selecting toggle button 534 to indicate that the report template is batch-processable.
[0103] Display 531 also includes static pages 532. As described above, static pages (such as static pages 532) are not modified or otherwise manipulated when automatically generating reports. For example, static pages 532 include a title page for display 531, which provides information related to all automatically generated reports, which is different from the information specific to each report. The user designates static page 532 as a static page by not selecting the corresponding toggle button to indicate that static page 532 is static and not batch-processable. Displays such as display 531 according to embodiments of the present invention can include a plurality of mixed static pages and batch-processable pages.
[0104] After completing step 530, the flowchart 500 then moves to Figure 5D Step 540 is shown.
[0105] At step 540, the user further inputs data to specify parameters for automatically generating a report. Specifically, the user interacts with interface 549, which comprises one aspect of a user interface. Interacting with interface 549, the user selects a source group and an iterator type 541 to define how the report is automatically generated. In each case, a source group and an iterator type 541 are selected from a drop-down menu of interface 549. In the illustrated embodiment, the source group includes samples to be iterated related to the automatically generated report. Also in the illustrated embodiment, the iterator type is specified as a sample. The user also specifies the number of tiles per page 542 from a different aspect of interface 549. As described above, selecting the number of tiles per page limits the number of pages required to display the batch processing results. Figures 5A to 5GIn the example shown, there are 16 samples available, so selecting 4 slices per page means that 4 report pages will be automatically generated, with 4 batched reports per page, i.e., automatically generated reports. Finally, when the user enters the above information as needed, the user starts the automatic generation of the report by clicking the "Batch" button 543.
[0106] After completing step 540, the flowchart 500 then moves to Figure 5E Step 550 is shown.
[0107] At step 550, automatically generated reports 551a-551d of presentation 531 are output for presentation to the user. After the report is automatically generated, presentation 531 includes a static page 532 and four automatically generated report pages 551a-551d. Each of the automatically generated report pages 551a-551d displays four plots, each corresponding to one of the 16 samples for which flow cytometry data associated with the experiment was collected. In other words, each automatically generated report page 551a-551d includes data populated from each of the 16 samples in the source group specified at step 540. In other words, each of pages 551a-551d includes iterative content for the 16 samples from the source group.
[0108] After completing step 550 , flowchart 500 ends 599 .
[0109] Additional reference information related to flowchart 500 is available at Figure 5F-5G In display. Figure 5F An example user interface 560 is shown showing components for generating and configuring the report template 521 for presentation 531 before a user clicks the "Batch" button 543 to automatically generate a batch report. Figure 5F In FIG, report template 521 of presentation 531 is shown in the context of a set of menu options 561 and interface 549. Figure 5F , shows how a user might interact with menu options 561, page 549, and static / batch toggle button 534 to configure report template 521 for presentation 531. Figure 5F-5G As shown, the automatically generated page of presentation 531 is based on report template 521. In addition, report template 521 and its characteristics are added or otherwise manipulated (including through manipulation menu options 561) through the user interface, such as Figure 5F-5GIn any case, the user is free to design and configure the report template 521 in any convenient manner, which allows the presentation of relevant information for each data set from the source group. For example, by clicking on the page representations 532, 521, multiple pages of the presentation 531 can be added, configured, or otherwise manipulated.
[0110] Figure 5G An example user interface 570 is shown, which displays components for configuring and operating various aspects of the presentation 531 and its batch reports 551a, 551a1, 551b1, 551c1, 551d1 after a user clicks the "Batch" button 543 to automatically generate a batch report. Since the user clicks the "Batch" button 543 to automatically generate a batch report, the presentation 531 has been expanded to include batched report pages 551a1, 551b1, 551c1, 551d1 in addition to the static page 532, which remains unchanged after the automatic report generation. As described above in conjunction with Figure 5E As described in step 550, since there are 16 samples and the number of slices per page is set to 4, 4 batched report pages are automatically generated. The user interface 570 includes thumbnails of pages 532, 551a1, 551b1, 551c1, and 551d1 of the presentation 531 near the bottom, so that clicking on one of the thumbnail images displays an enlarged version of such page 551a corresponding to the thumbnail page 551a1. Figure 5G , the thumbnail of the report page 551a1 has been clicked, resulting in the batched report 551a being displayed as an enlarged image.
[0111] Figures 6A-6H Shown is a flow chart 600 of a method for automatically generating a report according to another embodiment of the present invention. Flow chart 600 is an exemplary embodiment of the present invention provided for illustrative purposes. Flow chart 600 is described from the aspect of automatically generating a report relevant to the flow cytometry data collected across multiple samples. Any suitable flow cytometry data (e.g., light scattering data or fluorescent marker data) that can be displayed on the report relevant to any suitable sample can be used to automatically generate a report by applying an embodiment of the present invention, and such flow cytometry data can be different. However, embodiments of the present invention are not limited thereto, and can also be used to automatically generate a report for a set of data sets other than flow cytometry data and / or other than the flow cytometry data relevant to multiple different samples.
[0112] Figures 6A-6H Flowchart 600 is illustrated by showing the state of interface 601 during the various steps of flowchart 600. That is, Figures 6A-6HAn interface 601 is shown from a user's perspective during the application of the flowchart 600 to automatically generate batch reports.
[0113] Flowchart 600 Figure 6A The process begins at step 610 shown. At 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 various aspects of interface 601 to add text boxes to static page 611, configure static page 611 to be in landscape mode, and name presentation 631. Presentation 631 will ultimately include an automatically generated batch report related to application flowchart 600.
[0114] exist Figure 6A After the static page is created at step 610, the flowchart 600 moves to Figure 6B Step 620 is shown at .
[0115] exist Figure 6B At step 620 shown, a user interacts with interface 601 to add a second page 621 to presentation 631. Second page 621 follows first page 611 of presentation 631. At step 620, second page 621 is completely blank.
[0116] exist Figure 6B After the second page is added at step 620 shown in FIG, the flowchart 600 moves to Figure 6C Step 630 is shown at .
[0117] exist Figure 6C At step 630 shown, a user interacts with interface 601 to add a drawing 633 to second page 621 of presentation 631. Drawing 633 is added to second page 621 by dragging and dropping 632 drawing 633 from a portion of interface 601 onto second page 621. In the figure, MVP stands for Minimum Variable Product.
[0118] exist Figure 6C After adding the drawing at step 630, the flowchart 600 then moves to Figure 6D Step 640 is shown at .
[0119] exist Figure 6D At step 640, the user interacts with the interface 601 to further configure the plot 633 by specifying whether the plot 633 is associated with a single or multiple groups, populations, or samples of data. In the case of the plot 633, the user specifies that the plot 633 is associated with only a single sample and may include annotations including, for example, the sample name, whether the data is gated or non-gated, and count information (i.e., the number of events detected by the flow cytometer that are displayed in the plot 633).
[0120] exist Figure 6D After completing the configuration drawing 633 at step 640 shown, the flowchart 600 then moves to Figure 6E Step 650 is shown.
[0121] exist Figure 6E At step 650, the user interacts with the interface 601 to specify that the second page 621 (including its drawing 633) is batch processable. That is, by selecting the batch option on the batch toggle icon 634, the user specifies that the second page 621 with the drawing 633 is to be treated as a report template. In other words, applying the flowchart 600 will automatically generate a batch report that is an instance of the second page 621 with the drawing 633 (and the report template).
[0122] exist Figure 6E After the step 650 is completed to designate the second page 621 (including its drawing 633) as batch processable, the flowchart 600 then moves to Figure 6F Step 660 is shown.
[0123] exist Figure 6F At step 660 shown, the user interacts with the interface 601 to configure various aspects of the second batch-processable page 621 (i.e., the report template). Specifically, the user interacts with portions of the interface 601 to select a source group 661 (i.e., the data used to populate each batch report), select an iterator type 662 (in the example shown by selecting 662, the iterator type is set to iterate by sample only), and select a starting sample 663 (i.e., which sample is first used to automatically populate the batch report).
[0124] exist Figure 6F After completing the configuration of various aspects of the second batch-processable page 621 (i.e., the report template) at step 660, the flowchart 600 then moves to Figure 6G Step 670 is shown.
[0125] exist Figure 6G At step 670, batching of reports (i.e., automatically generating batch reports) is initiated. To initiate the process of generating batched reports, the user clicks the "Batch" button 643. As described above, the iterator type 662 is set to iterate by sample. Therefore, the automatically generated reports are generated in batches by sample. In the example shown, there are seven different available samples 641, with the current sample being highlighted in the sample list 641.
[0126] exist Figure 6G After the automatic batch report generation is completed at step 670, the flowchart 600 moves to Figure 6H Step 680 is shown.
[0127] exist Figure 6H At step 680, the batched reports 683 (i.e., automatically generated reports) of presentation 631 are displayed on interface 601. Interface 601 also displays a magnified version of one of the automatically generated reports 683 for further inspection and manipulation or configuration as needed by the user. Since seven samples are used in the described example, the resulting presentation 631 includes seven automatically generated report pages 683 and a single static page 611.
[0128] exist Figure 6H After the batched report 683 (ie, the automatically generated report) for the presentation 631 is displayed at step 680 , the flowchart 600 ends 699 .
[0129] Acquire flow cytometry data:
[0130] As described above, embodiments of the present invention can be applied to data collected using a flow cytometer (e.g., any suitable flow cytometer, such as those described herein). In some embodiments, the data displayed in the automatically generated report (i.e., batch report) generated using embodiments of the present invention can include light scattering data from particles collected by flow cytometry analysis (i.e., conventional flow cytometry) of the particles from the sample. In addition, in some cases, the data displayed on the batch report generated using embodiments of the present invention can include imaging data collected using any suitable imaging technology, such as an imaging flow cytometer. The technology for collecting such light scattering data and / or imaging data, for example, by applying a flow cytometer, is further described below.
[0131] Flow cytometry:
[0132] A flow cytometer typically includes a sample reservoir for receiving a fluid sample (e.g., a sample including particles (e.g., cells)) for classification or analysis and a sheath reservoir containing a sheath fluid. The flow cytometer transports particles (including cells, such as cells from a sample) in a fluid sample as a cell stream to a flow cell, while also directing sheath fluid to the flow cell. In order to characterize the components of the flow stream, the flow stream is illuminated with light. Changes in the material in the flow stream, such as morphological features or the presence of fluorescent labels, can result in changes in the observed light, and these changes enable characterization and, in some cases, separation. For example, particles in a fluid suspension (e.g., molecules, beads bound to an analyte, or individual cells) pass through a detection zone where the particles are exposed to excitation light, typically from one or more lasers, and the light scattering properties and fluorescence properties of the particles are measured. To facilitate detection, the particles or their components are typically labeled with fluorescent dyes. By labeling different particles or components with spectrally distinguishable fluorescent dyes, multiple different particles or components can be detected simultaneously. In some embodiments, the analyzer includes multiple detectors, one for each of the scattering parameters to be measured and one or more for each of the different dyes to be detected. For example, some embodiments include a spectral configuration in which more than one sensor or detector is used for each dye. The acquired data includes the signal and fluorescence emission measured for each light scattering detector. In certain embodiments, flow cytometry can detect a signal indicating the presence of a labeled secondary antibody in the sample.
[0133] light source:
[0134] As described above, light from a light source can be used to illuminate a sample (e.g., a sample in a flow stream of a flow cytometer). In some embodiments, the light source is a broadband light source that emits light having a wide wavelength range, such as 50 nm or greater, such as 100 nm or greater, such as 150 nm or greater, such as 200 nm or greater, such as 250 nm or greater, such as 300 nm or greater, such as 350 nm or greater, such as 400 nm or greater, and including spanning 500 nm or greater. For example, a suitable broadband light source emits light having a wavelength of 200 nm to 1500 nm. Another example of a suitable broadband light source includes a light source that emits light having a wavelength of 400 nm to 1000 nm. Where the method comprises irradiating with a broadband light source, the broadband light source scheme of interest may include, but is not limited to, a halogen lamp, a deuterium arc lamp, a xenon arc lamp, a stable fiber-coupled broadband light source, a broadband LED with a continuous spectrum, a superluminescent diode, a semiconductor light emitting diode, a broadband spectrum LED white light source, a multi-LED integrated white light source, and other broadband light sources or any combination thereof.
[0135] In other embodiments, the method includes irradiating with a narrowband light source that emits a specific wavelength or a narrow wavelength range, for example, using a light source that emits light in a narrow wavelength range such as 50 nm or less (e.g., 40 nm or less, such as 30 nm or less, such as 25 nm or less, such as 20 nm or less, such as 15 nm or less, such as 10 nm or less, such as 5 nm or less, such as 2 nm or less), and including a light source that emits light of a specific wavelength (i.e., monochromatic light). Where the method includes irradiating with a narrowband light source, the narrowband light source scheme of interest may include, but is not limited to, a narrow wavelength LED, a laser diode, or a broadband light source coupled to one or more optical bandpass filters, diffraction gratings, monochromators, or any combination thereof.
[0136] In some embodiments, the method includes irradiating the sample with one or more lasers. As discussed above, the type and number of lasers will vary depending on the sample and the desired light to be collected, and the lasers can be gas lasers such as helium-neon lasers, argon lasers, krypton lasers, xenon lasers, nitrogen lasers, CO2 lasers, CO lasers, argon-fluorine (ArF) excimer lasers, krypton-fluorine (KrF) excimer lasers, xenon-chlorine (XeCl) excimer lasers, or xenon-fluorine (XeF) excimer lasers, or combinations thereof. In other examples, the method includes irradiating the flow stream with a dye laser, such as a stilbene, coumarin, or rhodamine laser. In other examples, the method comprises irradiating the flow stream with a metal-vapor laser, such as a helium-cadmium (HeCd) laser, a helium-mercury (HeHg) laser, a helium-selenium (HeSe) laser, a helium-silver (HeAg) laser, a strontium laser, a neon-copper (NeCu) laser, a copper laser, or a gold laser, and combinations thereof. In still other examples, the method comprises irradiating the flow stream with a solid-state laser, such as a ruby laser, an Nd:YAG laser, an NdCrYAG laser, an Er:YAG laser, an Nd:YLF laser, an Nd:YVO4 laser, an Nd:YCa4O(BO3)3 laser, an Nd:YCOB laser, a titanium sapphire laser, a thulium YAG laser, an ytterbium YAG laser, a Yb2O3 laser, or a cerium-doped laser, and combinations thereof.
[0137] The sample can be illuminated with one or more of the above-described light sources, such as two or more light sources, such as three or more light sources, such as four or more light sources, such as five or more light sources, and including ten or more light sources. The light sources can include any combination of light sources. For example, in some embodiments, the method includes illuminating the sample in the flowing stream with a laser array (e.g., an array having one or more gas lasers, one or more dye lasers, and one or more solid-state lasers).
[0138] The sample can be irradiated with a wavelength of 200nm to 1500nm, for example, 250nm to 1250nm, for example, 300nm to 1000nm, for example, 350nm to 900nm, and including 400nm to 800nm. For example, when the light source is a broadband light source, the sample can be irradiated with a wavelength of 200nm to 900nm. In other examples, when the light source includes a plurality of narrowband light sources, the sample can be irradiated with a specific wavelength of 200nm to 900nm. For example, the light source can be a plurality of narrowband LEDs (1nm to 25nm), each LED independently emitting light with a wavelength range of 200nm to 900nm. In other embodiments, the narrowband light source includes one or more lasers (e.g., a laser array) and irradiates the sample with a specific wavelength of 200nm to 700nm, for example, using a laser array having a gas laser, an excimer laser, a dye laser, a metal vapor laser, and a solid-state laser as described above to irradiate the sample.
[0139] When more than one light source is used, the light sources can be used to illuminate the sample simultaneously or sequentially or a combination of light sources can be used to illuminate the sample. For example, each of the light sources can be used to illuminate the sample simultaneously. In other embodiments, the flow stream can be illuminated sequentially by each of the light sources. When more than one light source is used to illuminate the sample sequentially, the time for each light source to illuminate 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 microsecond or more, such as 5 microseconds or more, such as 10 microseconds or more, such as 30 microseconds or more and including 60 microseconds or more. For example, the method can include continuously irradiating the sample with a light source (e.g., a laser) for 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 and including 5 microseconds to 10 microseconds. In an embodiment in which two or more light sources are used to illuminate the sample sequentially, the duration for which the sample is illuminated by each light source can be the same or different.
[0140] The time period between each light source irradiation can also be varied as needed, being independently spaced apart by a delay of 0.001 microseconds or more, such as 0.01 microseconds or more, such as 0.1 microseconds or more, such as 1 microsecond or more, such as 5 microseconds or more, such as 10 microseconds or more, such as 15 microseconds or more, such as 30 microseconds or more, and including 60 microseconds or more. For example, the time period between each light source irradiation can be 0.001 microseconds to 60 microseconds, such as 0.01 microseconds to 50 microseconds, such as 0.1 microseconds to 35 microseconds, such as 1 microsecond to 25 microseconds, and including 5 microseconds to 10 microseconds. In certain embodiments, the time period between each light source irradiation is 10 microseconds. In embodiments where the sample is irradiated sequentially by more than two (i.e., 3 or more) light sources, the delays between each light source irradiation can be the same or different.
[0141] The sample can be illuminated continuously or at discrete intervals. In some examples, the method includes illuminating the sample with the light source continuously. In other examples, the sample is illuminated with the light source at discrete intervals, such as every 0.001 millisecond, every 0.01 millisecond, every 0.1 millisecond, every 1 millisecond, every 10 milliseconds, every 100 milliseconds, including every 1000 milliseconds, or other intervals.
[0142] Depending on the light source, the sample can be illuminated at a distance from the sample that varies, for example, 0.01 mm or more, for example, 0.05 mm or more, for example, 0.1 mm or more, for example, 0.5 mm or more, for example, 1 mm or more, for example, 2.5 mm or more, for example, 5 mm or more, for example, 10 mm or more, for example, 15 mm or more, for example, 25 mm or more, and including 50 mm or more. In addition, the illumination angle can also vary, ranging from 10° to 90°, for example, from 15° to 85°, for example, from 20° to 80°, for example, from 25° to 75°, and including 30° to 60°, for example, irradiating at a 90° angle.
[0143] In some embodiments, the method includes irradiating the sample with two or more frequency-shifted light beams. A beam generator assembly having a laser and an acousto-optic device for frequency-shifting the laser light can be used. In these embodiments, the method includes irradiating the acousto-optic device with a laser. Depending on the desired wavelength of light generated in the output laser beam (e.g., for irradiating a sample in a flowing stream), the laser can have a specific wavelength ranging from 200 nm to 1500 nm, such as from 250 nm to 1250 nm, such as from 300 nm to 1000 nm, such as from 350 nm to 900 nm, and including a specific wavelength ranging from 400 nm to 800 nm. The acousto-optic device can be irradiated with one or more lasers, such as two or more lasers, such as three or more lasers, such as four or more lasers, such as five or more lasers, and including ten or more lasers. The laser can include any combination of laser types. For example, in some embodiments, the method includes illuminating the acousto-optic device with a laser array, such as an array having one or more gas lasers, one or more dye lasers, and one or more solid-state lasers.
[0144] When more than one laser is used, the lasers can be used to illuminate the acousto-optic device simultaneously or sequentially, or using a combination of lasers. For example, the acousto-optic device can be illuminated by each of the lasers simultaneously. In other embodiments, the acousto-optic device is illuminated by each of the lasers sequentially. When more than one laser is used to sequentially illuminate the acousto-optic device, the time for each laser to illuminate the acousto-optic device can independently be 0.001 microseconds or longer, such as 0.01 microseconds or longer, such as 0.1 microseconds or longer, such as 1 microsecond or longer, such as 5 microseconds or longer, such as 10 microseconds or longer, such as 30 microseconds or longer, and including 60 microseconds or longer. For example, the method can include illuminating the acousto-optic device with a laser for 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, and including 5 microseconds to 10 microseconds. In embodiments where the acousto-optic device is sequentially illuminated with two or more lasers, the duration that the acousto-optic device is illuminated by each laser may be the same or different.
[0145] The time period between each laser shot can also vary as desired, being independently spaced apart by delays of 0.001 microseconds or longer, such as 0.01 microseconds or longer, such as 0.1 microseconds or longer, such as 1 microsecond or longer, such as 5 microseconds or longer, such as 10 microseconds or longer, such as 15 microseconds or longer, such as 30 microseconds or longer, and including 60 microseconds or longer. For example, the time period between each light source shot can be 0.001 microseconds to 60 microseconds, such as 0.01 microseconds to 50 microseconds, such as 0.1 microseconds to 35 microseconds, such as 1 microsecond to 25 microseconds, and including 5 microseconds to 10 microseconds. In some embodiments, the time period between each laser shot is 10 microseconds. In embodiments where the acousto-optic device is sequentially illuminated by more than two (i.e., three or more) lasers, the delays between each laser shot can be the same or different.
[0146] The acousto-optic device can be illuminated continuously or at discrete intervals. In some cases, the method includes illuminating the acousto-optic device with a laser continuously. In other cases, the acousto-optic device is illuminated with a light source at discrete intervals, such as every 0.001 millisecond, every 0.01 millisecond, every 0.1 millisecond, every 1 millisecond, every 10 milliseconds, every 100 milliseconds, including every 1000 milliseconds or some other interval.
[0147] Depending on the laser, the acousto-optic device may be illuminated at a distance from the acousto-optic device that varies, for example, 0.01 mm or more, for example, 0.05 mm or more, for example, 0.1 mm or more, for example, 0.5 mm or more, for example, 1 mm or more, for example, 2.5 mm or more, for example, 5 mm or more, for example, 10 mm or more, for example, 15 mm or more, for example, 25 mm or more, and including 50 mm or more. Furthermore, the illumination angle may also vary, ranging from 10° to 90°, for example, from 15° to 85°, for example, from 20° to 80°, for example, from 25° to 75°, and including 30° to 60°, for example, illumination at an angle of 90°.
[0148] In an embodiment, a method includes applying a radio frequency drive signal to an acousto-optic device to generate an angularly deflected laser beam. Two or more radio frequency drive signals, such as three or more radio frequency drive signals, such as four or more radio frequency drive signals, such as five or more radio frequency drive signals, such as six or more radio frequency drive signals, such as seven or more radio frequency drive signals, such as eight or more radio frequency drive signals, such as nine or more radio frequency drive signals, such as ten or more radio frequency drive signals, such as 15 or more radio frequency drive signals, such as 25 or more radio frequency drive signals, such as 50 or more radio frequency drive signals, and including 100 or more radio frequency drive signals, can be applied to the acousto-optic device to generate an output laser beam having a desired number of angularly deflected laser beams.
[0149] The angularly deflected laser beams generated by the RF drive signal each have an intensity based on the amplitude of the applied RF drive signal. In some embodiments, the method includes applying an RF drive signal having an amplitude sufficient to generate an angularly deflected laser beam having a desired intensity. In some examples, each applied RF drive signal independently has an amplitude of about 0.001V to about 500V, such as about 0.005V to about 400V, such as about 0.01V to about 300V, such as about 0.05V to about 200V, such as about 0.1V to about 100V, such as about 0.5V to about 75V, such as about 1V to 50V, such as about 2V to 40V, such as 3V to about 30V, and including about 5V to about 25V. In some embodiments, each applied RF drive signal has a frequency of about 0.001 MHz to about 500 MHz, such as about 0.005 MHz to about 400 MHz, such as about 0.01 MHz to about 300 MHz, such as about 0.05 MHz to about 200 MHz, such as about 0.1 MHz to about 100 MHz, such as about 0.5 MHz to about 90 MHz, such as about 1 MHz to about 75 MHz, such as about 2 MHz to about 70 MHz, such as about 3 MHz to about 65 MHz, such as about 4 MHz to about 60 MHz, and including a frequency of about 5 MHz to about 50 MHz.
[0150] In these embodiments, the angularly deflected laser beams in the output laser beam are spatially separated. Depending on the applied RF drive signal and the desired illumination profile of the output laser beam, the angularly deflected laser beams can be separated by 0.001 μm or more, such as 0.005 μm or more, such as 0.01 μm or more, such as 0.05 μm or more, such as 0.1 μm or more, such as 0.5 μm or more, such as 1 μm or more, such as 5 μm or more, such as 10 μm or more, such as 100 μm or more, such as 500 μm or more, such as 1000 μm or more, and including 5000 μm or more. In some embodiments, the angularly deflected laser beams overlap, such as 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., the overlap of beam spots) can be 0.001 μm or more, such as 0.005 μm or more, such as 0.01 μm or more, such as 0.05 μm or more, such as 0.1 μm or more, such as 0.5 μm or more, such as 1 μm or more, such as 5 μm or more, such as 10 μm or more, and including 100 μm or more.
[0151] Light detector:
[0152] Aspects of the inventive method include using light detectors such as fluorescence detectors to gather scattered light or fluorescence. In some instances, fluorescence detectors can be configured to detect the fluorescence emission from fluorescent molecules, which are the specific binding members of the mark associated with the particle in the flow cell (for example, the antibody of the mark specifically combined with the marker of interest). In certain embodiments, method includes using one or more fluorescence detectors to detect the fluorescence from sample, and the one or more fluorescence detectors are such as two or more fluorescence detectors, such as three or more fluorescence detectors, such as four or more fluorescence detectors, such as five or more fluorescence detectors, such as six or more fluorescence detectors, such as seven or more fluorescence detectors, such as eight or more fluorescence detectors, such as nine or more fluorescence detectors, such as ten or more fluorescence detectors, such as 15 or more fluorescence detectors, and including 25 or more fluorescence detectors. In an embodiment, each in fluorescence detector is configured to produce fluorescence data signal. Fluorescence from sample can be detected independently in one or more ranges of 200nm to 1200nm by each fluorescence detector. In certain embodiments, the method includes detecting the fluorescence from the sample in a wavelength range of, for example, 200nm to 1200nm, for example, 300nm to 1100nm, for example, 400nm to 1000nm, for example, 500nm to 900nm, and including 600nm to 800nm. In other cases, the method includes using each fluorescence detector to detect fluorescence at one or more specific wavelengths. For example, depending on the number of different fluorescence detectors in this theme light detection system, fluorescence can be detected at one or more of 450nm, 518nm, 519nm, 561nm, 578nm, 605nm, 607nm, 625nm, 650nm, 660nm, 667nm, 670nm, 668nm, 695nm, 710nm, 723nm, 780nm, 785nm, 647nm, 617nm and any combination thereof. In certain embodiments, the method includes detecting a light wavelength corresponding to the fluorescence peak wavelength of some fluorophores present in the sample. In an embodiment, fluorescence flow cytometry data is received from one or more light detectors (e.g., one or more detection channels), wherein the one or more light detectors are, for example, two or more light detectors, for example, three or more light detectors, for example, four or more light detectors, for example, five or more light detectors, for example, six or more light detectors, and including eight or more light detectors (e.g., eight or more detection channels).
[0153] Light from the sample can be measured at one or more wavelengths, for example, at 5 or more different wavelengths, for example, at 10 or more different wavelengths, for example, at 25 or more different wavelengths, for example, at 50 or more different wavelengths, for example, at 100 or more different wavelengths, for example, at 200 or more different wavelengths, for example, at 300 or more different wavelengths, and including at 400 or more different wavelengths.
[0154] The collected light can be measured continuously or at discrete intervals. In some instances, the method includes measuring light continuously. In other instances, the light is measured at discrete intervals, such as every 0.001 milliseconds, every 0.01 milliseconds, every 0.1 milliseconds, every 1 millisecond, every 10 milliseconds, every 100 milliseconds, including every 1000 milliseconds or some other interval.
[0155] During the subject method, the collected light can be measured one or more times, such as 2 or more times, such as 3 or more times, such as 5 or more times, and including 10 or more times. In some embodiments, light propagation is measured 2 or more times, wherein in some instances the data is averaged.
[0156] In certain embodiments, the method includes spectrally resolving light from each fluorophore of a fluorophore-biomolecule pair in a 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 light from each fluorophore includes calculating a spectral unmixing matrix for the fluorescence spectrum of each fluorophore in a plurality of fluorophores having overlapping fluorescence in the sample detected by a light detection system. In some instances, spectrally resolving light from each fluorophore and calculating a spectral unmixing matrix for each fluorophore can be used to estimate the abundance of each fluorophore, for example, for resolving the abundance of target cells in a sample.
[0157] In some embodiments, the method includes spectrally parsing the light detected by the plurality of photodetectors, for example, as described in U.S. Patent No. 11,009,400, U.S. Patent Application Publication Nos. 20210247293 and 20210325292, the disclosures of which are incorporated herein by reference. For example, spectrally parsing the light detected by the plurality of photodetectors in the second set of photodetectors may include parsing the spectral unmixing matrix using one or more of the following methods: 1) a weighted least squares algorithm; 2) a Sherman-Morrison iterative inverse updater; 3) an LU matrix decomposition, for example, decomposing the matrix into the product of a lower triangular (L) matrix and an upper triangular (U) matrix; 4) a modified Cholesky decomposition; 5) by QR decomposition; and 6) computing a weighted least squares algorithm by singular value decomposition. In some embodiments, the method further includes characterizing spillover spread of light detected by the plurality of photodetectors, such as described in U.S. Patent Application Publication No. 20210349004, the disclosure of which is incorporated herein by reference.
[0158] In some instances, the abundance of fluorophores associated with a target particle (e.g., chemically associated (e.g., covalently or ionically associated) or physically associated) is calculated based on the spectrally resolved light from each fluorophore associated with the particle. For example, in one example, the relative abundance of each fluorophore associated with a target particle is calculated based on the spectrally resolved light from each fluorophore. In another example, the absolute abundance of each fluorophore associated with a target particle is calculated based on the spectrally resolved light from each fluorophore. In some 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 suitable scheme, such as 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 a spectroscopic or other quantitative analysis on a population of particles (e.g., a population of cells) having the calculated relative or absolute abundance of associated fluorophores.
[0159] In certain embodiments, the method may include sorting one or more particles (e.g., cells) of a sample identified based on an 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 biomacromolecules), and in some instances, transferring the separated components to one or more sample collection containers. For example, the method may include sorting two or more components of a sample, such as three or more components, such as four or more components, such as five or more components, such as ten or more components, such as fifteen or more components, and including sorting twenty-five or more components of a sample. When sorting particles identified based on the abundance of fluorophores associated with the particles, the method includes, for example, data acquisition, analysis, and recording using a computer, wherein multiple data channels record data from each detector for obtaining overlapping spectra of multiple fluorophore-biomolecule agent pairs associated with the particle. In these embodiments, the analysis includes spectrally resolving (e.g., by computing a spectral unmixing matrix) light from multiple fluorophores of a fluorophore-biomolecule agent pair associated with a particle having overlapping spectra and identifying the particle based on an estimated abundance of each fluorophore associated with the particle. The analysis can be transmitted to a sorting system that is configured to generate a set of digitized parameters based on the particle classification. In some embodiments, a method for sorting components of a sample includes sorting particles (e.g., cells in a biological sample), for example, as described in U.S. Patent 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, and 6,809,804, the disclosures of which are incorporated herein by reference. In some embodiments, the method includes sorting components of the sample using a particle sorting module, such as described in U.S. Patent Nos. 9,551,643 and 10,324,019, U.S. Patent Publication No. 2017 / 0299493, and International Patent 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 sorting decision module having multiple sorting decision units, such as described in U.S. Patent No. 11,085,868, the disclosure of which is incorporated herein by reference.
[0160] Flow cytometry assay protocols are well known in the art. See, e.g., 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 Throm Hemost. 2004 Oct; 30(5): 502-11; Alison et al. J Pathol, 2010 Dec; 222(4): 335-344; and Herbig et al. (2007) Crit Rev Ther Drug Carrier Syst. 24(3): 203-255, the disclosures of which are incorporated herein by reference. In certain aspects, flow cytometric analysis of the components involves the use of a flow cytometer capable of simultaneously exciting and detecting multiple fluorophores, such as a BD Biosciences FACSCanto TM Flow cytometer, used essentially according to the manufacturer's instructions. The methods of the present disclosure may involve image cytometry, for example, as 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.
[0161] Suitable flow cytometry systems may include, but are not limited to, those described in Ormerod (ed.), Flow Cytometry: A Practical Approach, Oxford Univ. Press (1997); Jaroszeski et al. (eds.), Flow Cytometry Protocols, Methods in Molecular Biology No. 91, Humana Press (1997); Practical Flow Cytometry, 3rd ed., Wiley-Liss (1995); Virgo et al. (2012) Ann Clin Biochem. Jan; 49(pt 1): 17-28; Linden et al., Semin Throm Hemost. 2004 Oct; 30(5): 502-11; Alison et al. J Pathol, 2010 Dec; 222(4): 335-344; and Herbig et al. (2007) Crit Rev Ther Drug Carrier Syst. 24(3):203-255, the disclosure of which is incorporated herein by reference. In certain embodiments, the flow cytometry system of interest includes the BD Biosciences FACSCanto TM Flow cytometer, BD Biosciences FACSCanto TM II flow cytometer, BD Accuri TM Flow cytometer, BD Accuri TM C6 Plus flow cytometer, BD Biosciences FACSCelesta TM Flow cytometer, BD Biosciences FACSLyric TM Flow cytometer, BD Biosciences FACSVerse TM Flow cytometer, BD Biosciences FACSymphony TM Flow cytometer, BD Biosciences LSRFortessa TM Flow cytometer, BD Biosciences LSRFortessa TM X-20 flow cytometer, BD Biosciences FACSPresto TM Flow cytometer, BD Biosciences FACSVia TMFlow cytometer and BD Biosciences FACSCalibur TM Cell sorter, BD Biosciences FACSCount TM Cell sorter, BD Biosciences FACSLyric TM Cell sorter, BD Biosciences Via TM Cell sorter, BD Biosciences Influx TM Cell sorter, BD Biosciences Jazz TM Cell sorter, BD Biosciences Aria TM Cell sorter, BD Biosciences FACSAria TM II cell sorter, BD Biosciences FACSAria TM III cell sorter, BD Biosciences FACSAria TM Fusion Cell Sorter and BD Biosciences FACSMelody TM Cell sorter, BD Biosciences FACSymphony TM S6 cell sorter, etc.
[0162] In some embodiments, the subject methods comprise the use of a flow cytometry system, such as those described in U.S. Patent Nos. 10,663,476, 10,620,111, 10,613,017, 10,605,713, 10,585,031, 10,578,542, 10,578,469, 10,481,074, 10,302,545, 10,145,793, 10,113,967, 10,006,852, 9,952,076, 9,933,341, 9,726,527, 9,453,789, 9,200,334, 9,097,640, those systems described in 9,095,494, 9,092,034, 8,975,595, 8,753,573, 8,233,146, 8,140,300, 7,544,326, 7,201,875, 7,129,505, 6,821,740, 6,813,017, 6,809,804, 6,372,506, 5,700,692, 5,643,796, 5,627,040, 5,620,842, 5,602,039, 4,987,086, 4,498,766, the disclosures of which are incorporated herein by reference.
[0163] In certain embodiments, the flow cytometry system of the present invention is configured for imaging particles in a flow stream by fluorescence imaging using radiofrequency labeled emission (FIRE), such as described by Diebold et al. in Nature Photonics Vol. 7(10); 806-810 (2013), and in U.S. Patent Nos. 9,423,353, 9,784,661, 9,983,132, 10,006,852, 10,078,045, 10,036,699, 10,078,045, 10,222,316, 10,288,546, 10,3 24,019, 10,408,758, 10,451,538, 10,620,111 and described in U.S. Patent Publication Nos. 2017 / 0133857, 2017 / 0328826, 2017 / 0350803, 2018 / 0275042, 2019 / 0376895, 2019 / 0376894, the disclosures of which are incorporated herein by reference. According to an embodiment of the present invention, the image data may include flow cytometry data of labeled particles (e.g., cells) obtained by a FIRE protocol, for example, using a FACSDiscover flow cytometer, for example, as described by Schraivogel et al. in 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).
[0164] Imaging flow cytometry:
[0165] With respect to acquiring cytometry imaging data for analysis (and ultimately for presentation in a report, such as the batch report described herein), in certain instances, as described above, a flow stream is illuminated using multiple frequency-shifted beams, and particles (e.g., cells) in the flow stream are imaged by fluorescence imaging using radiofrequency tagged emission (FIRE) to generate frequency-encoded images, such as described, for example, by Diebold et al. in Nature Photonics Vol. 7(10); 806-810 (2013), and in U.S. Patent Nos. 9,423,353, 9,784,661, 9,983,132, 10,006,852, 10,078,045, 10,036,699, 10,222,316, 10,288,546, 10,324,019, 10,222,316, 408,758, 10,451,538, 10,620,111 and described in U.S. Patent Publication Nos. 2017 / 0133857, 2017 / 0328826, 2017 / 0350803, 2018 / 0275042, 2019 / 0376895, 2019 / 0376894, the disclosures of which are incorporated herein by reference. In these examples, flow cytometry data can include image data of particles (e.g., cells) present in the sample. See, for example, Schraivogel et al. Science Vol. 375 (6578); 315-320 (2022), the public contents of which are incorporated herein in their entirety, and U.S. Provisional Patent Application Serial No. 63 / 256974, the disclosures of which are incorporated herein in their entirety.
[0166] Computer implemented embodiment:
[0167] The various methods and algorithmic steps described with respect to the embodiments disclosed herein can be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability of hardware and software, various illustrative steps have been generally described above from the perspective of their functionality. Whether such functionality is implemented in hardware or software depends on the specific application and design constraints imposed on the overall system by the application of the methods according to the present disclosure. The described functionality can be implemented in a variety of ways for each specific application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
[0168] The various illustrative steps, components, and computing systems (e.g., devices, databases, interfaces, and engines) described in connection with the embodiments disclosed herein can be implemented or executed by a machine, such as a general-purpose processor, a graphics processor unit, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof, designed to perform the functions described herein. A general-purpose processor can be a microprocessor, but alternatively, the processor can be a controller, a microcontroller, or a state machine, or a combination thereof. The processor can also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors combined with a DSP core, or any other such configuration. Although primarily described herein in terms of digital technology, the processor can also primarily include analog components. The computing environment can include any type of computer system, including but not limited to a microprocessor-based computer system, a graphics processor unit, a mainframe computer, a digital signal processor, a portable computing device, a personal organizer, a device controller, and a computing engine within a device, to name a few.
[0169] The methods, processes or algorithm steps described in the embodiments disclosed herein can be implemented directly by hardware, software modules executed by a processor, or a combination of the two. The software modules, engines and associated databases can reside in memory resources, such as RAM memory, FRAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disks, removable disks, CD-ROMs or any other form of non-transient computer-readable storage media or physical computer storage devices known in the art. An external storage medium can be coupled to the processor so that the processor can read information from the storage medium and write information to it. Alternatively, the storage medium can be integrated with the processor. The processor and storage medium can reside in an ASIC. The ASIC can reside in a user terminal. Alternatively, the processor and storage medium can reside in a user terminal as discrete components.
[0170] system
[0171] As described above, aspects of the present disclosure include systems for implementing the subject method. According to certain embodiments, the system includes a processor, the processor including a memory operably coupled thereto, wherein the memory includes instructions stored thereon that, when executed by the processor, cause the processor to: receive input specifying a configuration of a report template from an input device; generate the report template based on the configuration received from the input device; receive input specifying a source group and an iterator type from the input device, wherein the source group includes multiple data sets and the iterator type corresponds to the type of data present in the source group; based on the iterator type, iteratively populate multiple batch reports using the multiple data sets of the source group, wherein each batch report conforms to the report template and is populated using a separate data set from the multiple data sets of the source group; and output the multiple batch reports to an output device, wherein the processor and the memory are operably connected to each of the input device and the output device.
[0172] According to some embodiments, the system may include a display and an operator input device. The operator input device may be, for example, a keyboard, a mouse, or the like. The processing module includes at least one general-purpose processor and multiple parallel processing units, all of which can access a memory storing instructions to execute the steps of the subject method. The processing module may include an operating system, a graphical user interface (GUI) controller, system memory, memory storage devices and input / output controllers, cache memory, a data backup unit, and many other devices. The general-purpose processor and each parallel processing unit may be a commercially available processor, or may be one of other processors that are already available or will become available. The processor executes an operating system, which interacts with the firmware and hardware interfaces in a well-known manner and facilitates the processor to coordinate and execute the functions of various computer programs, which may be written in various programming languages known in the art, such as Java, Perl, Python, R, Go, JavaScript, .NET, CUDA, Verilog, C++, and other high-level or low-level languages, and combinations thereof. The operating system typically collaborates with the processor to coordinate and execute the functions of the other components of the computer. The operating system also provides scheduling, input / output control, file and data management, memory management, communication control, and related services in accordance with known techniques. The processor can 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 (eg, negative feedback control).
[0173] The system memory can be any of various known or future storage devices. Examples include any commonly used random access memory (RAM), magnetic media such as a resident hard disk or magnetic tape, optical media such as a read-write optical disc, a flash memory device, or other storage device. The storage device can be any of various known or future devices, including an optical disc drive, a tape drive, a removable hard disk drive, or a floppy disk drive. This type of storage device typically reads and / or writes to a program storage medium (not shown) (such as an optical disc, a magnetic tape, a removable hard disk, or a floppy disk) respectively. Any of these program storage media or other media currently in use or that may be developed in the future can be considered a computer program product. It should be understood that these program storage media typically store computer software programs and / or data. Computer software programs (also referred to as computer control logic) are typically stored in the system memory and / or in a program storage device used in conjunction with a storage device.
[0174] 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 computer processor, causes the processor to perform the functions described herein. In other embodiments, some functions are primarily implemented in hardware using, for example, a hardware state machine. Implementing a hardware state machine to perform the functions described herein will be readily apparent to those skilled in the relevant art.
[0175] The memory can be any suitable device in which one or more general-purpose processors and multiple parallel processing units (e.g., graphics processors) can store and retrieve data, such as a magnetic, optical, or solid-state storage device (including a magnetic disk or optical disk or tape or RAM, or any other suitable fixed or portable device). The general-purpose processor may include a general-purpose digital microprocessor, which is appropriately programmed from a computer-readable medium carrying the necessary program code. The parallel processing unit may include one or more graphics processors, which are appropriately programmed from a computer-readable medium carrying the necessary program code. The programming can be provided to the processor remotely via one or more communication channels, or pre-stored in a computer program product (e.g., memory or some other portable or fixed computer-readable storage medium) using any of those devices connected to the memory. For example, a magnetic disk or optical disk can carry the programming and can be read by a disk writer / reader. The system of the present invention also includes programming, such as programming in the form of a computer program product, algorithm for practicing the above-mentioned method. The programming according to the present invention can 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 and ROM); portable flash drives; and hybrids of these categories (such as magnetic / optical storage media).
[0176] The one or more general purpose processors may also access a communication channel to communicate with a user at a remote location. A remote location is one where the user is not directly in contact with the system and relays input information to the input manager from an external device, such as a computer connected to a wide area network (WAN), a telephone network, a satellite network, or any other suitable communication channel, including a mobile phone (i.e., a smartphone).
[0177] In some embodiments, a system according to the present disclosure may be configured to include a communication interface. In some embodiments, the communication interface includes a receiver and / or transmitter for communicating with a network and / or other devices. The communication interface may be configured for wired or wireless communication, including but not limited to radio frequency (RF) communication (e.g., radio frequency identification (RFID), Zigbee communication protocol, WiFi, infrared, wireless universal serial bus (USB), ultra-wideband (UWB), communication protocols and cellular communications such as Code Division Multiple Access (CDMA) or Global System for Mobile Communications (GSM).
[0178] In one embodiment, the communication interface is configured to include one or more communication ports, such as physical ports or interfaces such as a USB port, an RS-232 port, or any other suitable electrical connection port, to allow data communication between the subject system and other external devices, such as computer terminals configured for similar complementary data communications (e.g., in a doctor's office or hospital environment).
[0179] In one embodiment, the communication interface is configured for infrared communication, communications or any other suitable wireless communication protocol to enable the subject system to communicate with other devices, such as computer terminals and / or networks, communication-enabled mobile phones, personal digital assistants, or any other communication devices that a user may use in conjunction with.
[0180] In one embodiment, the communication interface is configured to provide a connection for data transmission using Internet Protocol (IP) through a cellular telephone network, a short message service (SMS), a wireless connection to a personal computer (PC) on a local area network (LAN) connected to the Internet, or a WiFi connection to the Internet at a WiFi hotspot.
[0181] In one embodiment, the subject system is configured to communicate with a wireless network via a communication interface (e.g., using a wireless network such as 802.11 or The server device may be a portable device such as a smartphone, a personal digital assistant (PDA), or a laptop computer, or a larger device such as a desktop computer, a computer, or the like. In some embodiments, the server device may have a display such as a liquid crystal display (LCD), and input devices such as buttons, a keyboard, a mouse, or a touch screen.
[0182] In some embodiments, the communication interface is configured to automatically or semi-automatically communicate data stored in the subject system (eg, stored in the optional data storage unit) with a network or server device using one or more of the above-described communication protocols and / or mechanisms.
[0183] 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). If one of the display devices provides visual information, the information may typically be logically and / or physically organized as an array of graphic elements. A graphical user interface (GUI) controller may include any of a variety of known or future software programs for providing a graphical input and output interface between the system and the user, as well as for processing user input. The functional elements of the computer may communicate with each other via a system bus. In alternative embodiments, some of these communications may be implemented using a network or other type of remote communication. According to known techniques, the output manager may also provide information generated by the processing module to a user at a remote location, for example, via the Internet, telephone, or satellite network. The presentation of data by the output manager may be implemented according to various known techniques. As some examples, the data may include SQL, HTML, or XML documents, emails, other files, or other forms of data. The data may include an Internet URL address, allowing the user to retrieve additional SQL, HTML, XML, or other documents or data from a remote source. The one or more platforms present in the subject system may be any type of computer platform known or to be developed in the future, although they will typically be computers of the type commonly referred to as servers. However, they may also be host computers, workstations, or other computer types. They may be connected by any known or future type of cable or other communication system including a wireless system (whether networked or otherwise). They may be co-located or physically separated. Depending on the type and / or brand of the selected computer platform, various operating systems may be used on any computer platform. 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.
[0184] Figure 7 Depicted is the general architecture of an exemplary computing device 700 in accordance with certain embodiments. Figure 7 The general architecture of the computing device 700 depicted in FIG. 7 includes an arrangement of computer hardware and software components. The computing device 700 may include Figure 7700. The computing device 700 may be a computer or a computer program product. The computing device 700 may be a computer program product or a computer program product that is configured to be used for computing the computing device 700. The computing device 700 may be a computer program product or a computer program product that is configured to be used for computing the computing device 700. The computing device 700 may be a computer program product or a computer program product that is configured to be used for computing the computing device 700. The computing device 700 may be a computer program product or a computer program product that is configured to be used for computing the computing device 700. The computing device 700 may be a computer program product or a computer program product that is configured to be used for computing the computing device 700. The computing device 700 may be a computer program product or a computer program product that is configured to be used for computing the computing device 700. The computing device 700 may be a computer program product or a computer program product that is configured to be used for computing the computing device 700. The computing device 700 may be a computer program product or a computer program product that is configured to be used for computing the computing device 700. The computing device 700 may be a computer program product or a computer program product that is configured to be used for computing the computing device 700.
[0185] Memory 770 may include computer program instructions (grouped into modules or components in some embodiments) that are executed by processing unit 710 to implement one or more embodiments. Memory 770 typically includes random access memory (RAM), ROM, and / or other persistent, secondary, or non-transitory computer-readable media. Memory 770 may store an operating system 772 that provides computer program instructions for use by processing unit 710 in the general management and operation of computing device 700. Memory 770 may also include computer program instructions and other information to implement various aspects of the present disclosure.
[0186] For example, in one embodiment, memory 770 includes a report template processing module 774 for generating one or more aspects of a report template (such as those described above), and a batch report processing module 776 for generating batch reports by populating report template instances with applicable data.
[0187] Computer-readable storage medium
[0188] Aspects of the present disclosure also include non-transient computer-readable storage media having instructions for practicing the subject method. Computer-readable storage media can be used on one or more computers to implement complete or partial automation of the system for implementing the method described herein. In certain embodiments, instructions according to the method described herein can be encoded on a computer-readable medium in the form of "programming", wherein the term "computer-readable medium" used herein refers to any non-transient storage medium that participates in providing instructions and data to a computer for execution and processing. Examples of suitable non-transient storage media include floppy disks, hard disks, optical disks, magneto-optical disks, CD-ROMs, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, DVD-ROMs, Blu-ray discs, solid-state disks, and network-attached storage (NAS), whether these devices are inside or outside the computer. Files containing information can be "stored" on a computer-readable medium, wherein "storage" means recording information so that the information can be accessed and retrieved by a computer later. The computer-implemented method described herein can be performed using programming that can be written in one or more of any number of computer programming languages. For example, such languages include Java (Sun Microsystems, Inc., Santa Clara, CA), Visual Basic (Microsoft Corporation, Redmond, WA), C++ (AT&T Corporation, Bedminster, NJ), Python, and many others.
[0189] In some embodiments, a computer-readable storage medium of interest includes a computer program stored thereon, wherein the computer program, when loaded onto a computer, includes instructions 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 a user, wherein the source group includes multiple data sets and the iterator type corresponds to the type of data present in the source group; and an algorithm for iteratively populating multiple batch reports using multiple data sets of the source group based on the iterator class, wherein each batch report conforms to the report template and is populated using a separate data set from the multiple data sets of the source group.
[0190] Practicality
[0191] The present subject system, method and non-transient computer-readable storage medium can be used for various applications that need to visualize data such as large data sets or a large amount of data sets. For example, an embodiment can be used for visualizing the data obtained using a flow cytometer, to analyze one or more samples. The present subject system, method and non-transient computer-readable storage medium can be used for applications that need to display or report to display data (such as the result analyzed using a flow cytometer). The present subject system, method and non-transient computer-readable storage medium can be used for applications that relate to using one or more control groups and one or more experimental groups to carry out one or more experimental processes, wherein it is desired to use any suitable data visualization technology to display the result associated with each such group respectively, to carry out experimental result analysis.
[0192] The following is offered by way of illustration and not limitation.
[0193] experiment
[0194] Figure 8 An excerpt of a user interface 800 is shown for configuring aspects of a report template 821 and presentation 831 via a menu 861, an interface 849, and a static / batch processable toggle button 834. The excerpt of the user interface 800 is from FlowJo by Becton Dickinson. TM 11 is an excerpt of an embodiment of the software. The software is designed to enable a user to designate an entire page as batch processable (also known as iterable), such as a presentation page 831 corresponding to a report template 821. Figure 1 Unlike the illustrated mail merge examples 110 and 150, any content on the presentation page 831 of the report template 821 that can be batch processed is batch processed when the report template 821 is generated and the "Batch" button of the interface 849 is clicked. That is, any content on the report template 821 that is capable of receiving data from the data set of the source group will be populated with such data. In an embodiment, the batch-processable content includes text, images, overlays, charts, etc. generated and configured by the user through interaction with the interface 800. In addition, Figure 1 Unlike the mail merge examples 110 and 150 shown, embodiments of the present invention, for example, Figure 8 The illustrated embodiment does not rely on specifying fields using tags or other semantics to declare that these fields can be batch-output by iterating over data stored in, for example, a linked list or spreadsheet. Instead, the embodiment of the present invention requires the user to generate a report template 821 and select an iterator type in order to iterate over the data sets of the source group.
[0195] Figure 9A-9B An example of generating a report template and automatically generating batch reports in a presentation using the template is shown. Figure 9A , interface 900 shows a report template 921 generated by a user using tools (e.g., a scalable drag-and-drop feature) provided by interface 901, such as a drawing or a text box for simple annotations. The user can configure report template 921 by interacting with, for example, menu options 961. Figure 9B Interface 900 is shown, which displays the results of automatically generating batch reports, including display 931, which includes multiple batched (i.e., automatically generated) reports, including batched (i.e., automatically generated) report 951 highlighted in interface 900 and expanded for further configuration as required by the user. Figure 9B The batched report 931 seen in is generated by iterating over the samples only. In addition, Figure 9B The batch report 931 shown in FIG. 1 is added to the presentation in a manner that does not include tiling. That is, each presentation page 931 includes one batch report.
[0196] Notwithstanding the appended claims, the present disclosure is defined by the following terms:
[0197] 1. A computer-implemented method for automatically generating reports, the method comprising:
[0198] generating a report template based on input from a user;
[0199] selecting a source group and an iterator type based on input from a user, wherein the source group includes a plurality of data sets and the iterator type corresponds to a type of data present in the source group; and
[0200] Based on the iterator type, a plurality of batch reports are iteratively populated using the plurality of data sets of the source group, wherein each batch report conforms to the report template and is populated using a separate data set from the plurality of data sets of the source group.
[0201] 2. The computer-implemented method of clause 1, wherein the report template comprises a data visualization structure.
[0202] 3. The computer-implemented method of clause 2, wherein the data visualization structure comprises: an image, a drawing, a chart, a table, a legend, or text.
[0203] 4. The computer-implemented method of clause 3, wherein the image is an image of a cell.
[0204] 5. The computer-implemented method of any of clauses 2 to 4, wherein generating a report template based on input from a user comprises receiving a configuration of the data visualization structure from a user.
[0205] 6. The computer-implemented method of any preceding clause, wherein iteratively populating the plurality of batch reports comprises automatically identifying aspects of a report template corresponding to the iterator type.
[0206] 7. A computer-implemented method according to any of the preceding clauses, wherein the report template is configured to present flow cytometry data.
[0207] 8. A computer-implemented method according to any of the preceding clauses, wherein each dataset of the source set comprises flow cytometry data.
[0208] 9. The computer-implemented method of clause 8, wherein the flow cytometry data comprises light scatter data or labeling data or a combination thereof.
[0209] 10. The computer-implemented method of clause 9, wherein the light scattering data comprises forward scattered light or side scattered light or a combination thereof.
[0210] 11. A computer-implemented method according to any one of clauses 9 to 10, wherein the labeling data comprises fluorescence emission data.
[0211] 12. The computer-implemented method of any one of clauses 8 to 11, wherein the flow cytometric data comprises data obtained by analyzing a sample by flow cytometry.
[0212] 13. The computer-implemented method of clause 12, wherein each dataset of the source set comprises flow cytometry data corresponding to a different sample.
[0213] 14. The computer-implemented method of clause 12, wherein each data set of the source set comprises flow cytometry data corresponding to a different statistic.
[0214] 15. The computer-implemented method of clause 12, wherein each data set of the source set comprises flow cytometry data corresponding to a different measurement value.
[0215] 16. The computer-implemented method of clause 12, wherein each dataset of the source set comprises flow cytometry data corresponding to a different time interval.
[0216] 17. The computer-implemented method of any preceding clause, further comprising receiving a data set of the source group.
[0217] 18. The computer-implemented method of any preceding clause, wherein selecting the source group comprises selecting a source group from a drop-down menu.
[0218] 19. A computer-implemented method according to any of the preceding clauses, wherein the iterator type identifies a category of data present in the source group.
[0219] 20. A computer-implemented method according to any of the preceding clauses, wherein the iterator type identifies a category of data that can vary among the multiple data sets of the source group.
[0220] 21. The computer-implemented method of any preceding clause, wherein the iterator type selects a type of data used to populate the plurality of batch reports.
[0221] 22. The computer-implemented method of any preceding clause, wherein the iterator type selects a type of data that varies between the plurality of batch reports.
[0222] 23. The computer-implemented method of any preceding clause, wherein a batch report is populated iteratively by the iterator type.
[0223] 24. The computer-implemented method of any of the preceding clauses, wherein the iterator type determines whether the batch report is populated iteratively by sample, by keyword, by statistic, or by time interval.
[0224] 25. The computer-implemented method of clause 24, wherein iteratively populating the batch report by samples comprises iterating over samples of the source group.
[0225] 26. The computer-implemented method of clause 24, wherein iteratively populating the batch report by keyword comprises iterating over keywords of the source group.
[0226] 27. The computer-implemented method of clause 24, wherein iteratively populating the batch report by time intervals comprises iterating over time intervals of the source group.
[0227] 28. The computer-implemented method of clause 24, wherein iteratively populating the batch report by statistics comprises iterating over the statistics of the source group.
[0228] 29. A computer-implemented method according to any of the preceding clauses, wherein selecting the iterator type includes a user selecting an iterator type from a drop-down menu.
[0229] 30. The computer-implemented method of any of the preceding clauses, further comprising selecting a number of reports to include on the presentation page.
[0230] 31. The computer-implemented method of any preceding clause, further comprising generating static content based on input from a user.
[0231] 32. The computer-implemented method of clause 31 , wherein the static content is not automatically populated.
[0232] 33. The computer-implemented method of any preceding clause, further comprising specifying, based on input from a user, that aspects of the presentation page include a report template.
[0233] 34. The computer-implemented method of any preceding clause, further comprising specifying, based on input from a user, that aspects of the presentation page include static content.
[0234] 35. A system for automatically generating a report, the system comprising:
[0235] A processor comprising a memory operatively coupled to the processor, wherein the memory comprises instructions stored thereon that, when executed by the processor, cause the processor to:
[0236] receiving input from an input device specifying a configuration of a report template;
[0237] generating the report template based on the configuration received from the input device;
[0238] receiving input from the input device specifying a source group and an iterator type, wherein the source group includes a plurality of data sets and the iterator type corresponds to a type of data present in the source group;
[0239] iteratively populating a plurality of batch reports using the plurality of data sets of the source group based on the iterator type, wherein each batch report conforms to the report template and is populated using a separate data set from the plurality of data sets of the source group; and
[0240] Outputting the plurality of batch reports to an output device,
[0241] Wherein the processor and the memory are operatively connected to each of the input device and the output device.
[0242] 36. The system of clause 35, wherein the report template comprises a data visualization structure.
[0243] 37. The system of clause 36, wherein the data visualization structure comprises: an image, a drawing, a chart, a table, a legend, or text.
[0244] 38. The system of clause 37, wherein the image is an image of a cell.
[0245] 39. The system of any of clauses 36 to 38, wherein generating the report template based on a configuration received from the input device comprises receiving a configuration of the data visualization structure from the input device.
[0246] 40. The system of any of clauses 35 to 39, wherein iteratively populating a plurality of batch reports comprises automatically identifying aspects of the report template corresponding to the iterator type.
[0247] 41. The system of any one of clauses 35 to 40, wherein the report template is configured to present flow cytometry data.
[0248] 42. A system according to any one of clauses 35 to 41, wherein each dataset of the source set comprises flow cytometry data.
[0249] 43. A system according to clause 42, wherein the flow cytometry data comprises light scatter data or labeling data or a combination thereof.
[0250] 44. The system of clause 43, wherein the light scattering data comprises forward scattered light or side scattered light or a combination thereof.
[0251] 45. A system according to any one of clauses 43 to 44, wherein the labeling data comprises fluorescence emission data.
[0252] 46. The system of any one of clauses 42 to 45, wherein the flow cytometric data comprises data obtained by analyzing a sample by flow cytometry.
[0253] 47. The system of clause 46, wherein each data set of the source set comprises flow cytometry data corresponding to a different sample.
[0254] 48. The system of clause 46, wherein each data set of the source set comprises flow cytometry data corresponding to a different statistic.
[0255] 49. The system of clause 46, wherein each data set of the source group comprises flow cytometry data corresponding to a different measurement value.
[0256] 50. The system of clause 46, wherein each data set of the source group comprises flow cytometry data corresponding to a different time interval.
[0257] 51. The system of any one of clauses 35 to 50, wherein the memory further comprises instructions stored thereon that, when executed by the processor, cause the processor to receive the source set of data sets from the input device.
[0258] 52. The system of any of clauses 35 to 51, wherein specifying a source group comprises receiving input based on selecting the source group from a drop-down menu.
[0259] 53. A system according to any one of clauses 35 to 52, wherein the iterator type identifies a category of data present in the source group.
[0260] 54. A system according to any one of clauses 35 to 53, wherein the iterator type identifies a category of data that can vary between the multiple data sets of the source group.
[0261] 55. The system of any one of clauses 35 to 54, wherein the iterator type selects a type of data used to populate the plurality of batch reports.
[0262] 56. The system of any of clauses 35 to 55, wherein the iterator type selects a type of data that varies between the plurality of batch reports.
[0263] 57. A system according to any one of clauses 35 to 56, wherein the batch report is populated iteratively by an iterator type.
[0264] 58. The system of any one of clauses 35 to 57, wherein the iterator type determines whether the batch report is populated iteratively by sample, by keyword, by statistic, or by time interval.
[0265] 59. The system of clause 58, wherein iteratively populating the batch report by samples comprises iterating over the samples of the source group.
[0266] 60. The system of clause 58, wherein iteratively populating the batch report by keyword comprises iterating over keywords of the source group.
[0267] 61. The system of clause 58, wherein iteratively populating the batch report by statistics comprises iterating over the statistics for the source group.
[0268] 62. The system of clause 58, wherein iteratively populating the batch report by statistics comprises iterating over time intervals for the source group.
[0269] 63. A system according to any one of clauses 35 to 62, wherein specifying the iterator type includes selecting an iterator type from a drop-down menu.
[0270] 64. A system according to any one of clauses 35 to 63, wherein the memory further comprises instructions stored thereon that, when executed by the processor, cause the processor to receive from the input device a selection of a number of reports to be included in a presentation page.
[0271] 65. The system of any one of clauses 35 to 64, wherein the memory further comprises instructions stored thereon that, when executed by the processor, cause the processor to generate static content based on input from a user.
[0272] 66. A system according to any of clauses 35 to 65, wherein the static content is not automatically populated.
[0273] 67. The system of any one of clauses 35 to 66, wherein the memory further comprises instructions stored thereon that, when executed by the processor, cause the processor to receive from the input device aspects of the presentation page including a specification of a report template.
[0274] 68. A system according to any one of clauses 35 to 67, wherein the memory further comprises instructions stored thereon that, when executed by the processor, cause the processor to receive from the input device a designation that aspects of the presentation page include static content.
[0275] 69. The system of any one of clauses 35 to 68, further comprising the input device and the output device.
[0276] 70. A non-transitory computer-readable storage medium comprising instructions stored thereon for automatically generating a report, the instructions comprising:
[0277] an algorithm for generating a report template based on input from a user;
[0278] an algorithm for selecting a source group and an iterator type based on input from a user, wherein the source group includes a plurality of data sets and the iterator type corresponds to a type of data present in the source group; and
[0279] An algorithm is provided for iteratively populating a plurality of batch reports using the plurality of data sets of the source group based on the iterator type, wherein each batch report conforms to the report template and is populated using a separate data set from the plurality of data sets of the source group.
[0280] 71. The non-transitory computer-readable storage medium of clause 70, wherein the report template comprises a data visualization structure.
[0281] 72. The non-transitory computer-readable storage medium of clause 71, wherein the data visualization structure comprises: an image, a drawing, a chart, a table, a legend, or text.
[0282] 73. The non-transitory computer-readable storage medium of clause 72, wherein the image is an image of a cell.
[0283] 74. The non-transitory computer-readable storage medium of any of clauses 71 to 73, wherein the algorithm for generating a report template based on input from a user comprises an algorithm for receiving a configuration of the data visualization structure from a user.
[0284] 75. The non-transitory computer-readable storage medium of any one of clauses 70 to 74, wherein the algorithm for iteratively populating the plurality of batch reports comprises an algorithm for automatically identifying aspects of the report template corresponding to the iterator type.
[0285] 76. The non-transitory computer-readable storage medium of any one of clauses 70 to 75, wherein the report template is configured to present flow cytometry data.
[0286] 77. The non-transitory computer-readable storage medium of any one of clauses 70 to 76, wherein each dataset of the source set comprises flow cytometry data.
[0287] 78. The non-transitory computer-readable storage medium of clause 77, wherein the flow cytometry data comprises light scatter data or labeling data or a combination thereof.
[0288] 79. The non-transitory computer-readable storage medium of clause 78, wherein the light scattering data comprises forward scattered light or side scattered light or a combination thereof.
[0289] 80. The non-transitory computer-readable storage medium of any one of clauses 78 to 79, wherein the labeling data comprises fluorescence emission data.
[0290] 81. The non-transitory computer-readable storage medium of any one of clauses 77 to 80, wherein the flow cytometer data comprises data obtained by analyzing a sample by flow cytometry.
[0291] 82. The non-transitory computer-readable storage medium of clause 81, wherein each dataset of the source set comprises flow cytometry data corresponding to a different sample.
[0292] 83. The non-transitory computer-readable storage medium of clause 81, wherein each data set of the source set comprises flow cytometry data corresponding to a different statistic.
[0293] 84. The non-transitory computer-readable storage medium of clause 81, wherein each data set of the source set comprises flow cytometry data corresponding to a different measurement value.
[0294] 85. The non-transitory computer-readable storage medium of clause 81, wherein each data set of the source set comprises flow cytometry data corresponding to a different time interval.
[0295] 86. The non-transitory computer-readable storage medium of any one of clauses 70 to 85, further comprising an algorithm for receiving the source set of data sets.
[0296] 87. The non-transitory computer-readable storage medium of any of clauses 70 to 86, wherein the algorithm for selecting the source group comprises an algorithm for selecting a source group from a drop-down menu.
[0297] 88. A non-transitory computer-readable storage medium as described in any of clauses 70 to 87, wherein the iterator type identifies a category of data present in the source group.
[0298] 89. A non-transitory computer-readable storage medium as described in any of clauses 70 to 88, wherein the iterator type identifies a category of data that can vary between the multiple data sets of the source group.
[0299] 90. The non-transitory computer-readable storage medium of any one of clauses 70 to 89, wherein the iterator type selects a type of data used to populate the plurality of batch reports.
[0300] 91. The non-transitory computer-readable storage medium of any one of clauses 70 to 90, wherein the iterator type selects a type of data that varies between the plurality of batch reports.
[0301] 92. The non-transitory computer-readable storage medium of any one of clauses 70 to 91, wherein the batch report is populated iteratively by an iterator type.
[0302] 93. The non-transitory computer-readable storage medium of any one of clauses 70 to 92, wherein the iterator type determines whether the batch report is populated iteratively by sample, by keyword, by statistic, or by time interval.
[0303] 94. The non-transitory computer-readable storage medium of clause 93, wherein the algorithm for iteratively populating the batch report by samples comprises an algorithm for iterating over samples of the source group.
[0304] 95. The non-transitory computer-readable storage medium of clause 93, wherein the algorithm for iteratively populating the batch report by keyword comprises an algorithm for iterating over keywords of the source group.
[0305] 96. The non-transitory computer-readable storage medium of clause 93, wherein the algorithm for iteratively populating batch reports by time intervals comprises an algorithm for iterating over time intervals of the source group.
[0306] 97. The non-transitory computer-readable storage medium of clause 93, wherein the algorithm for iteratively populating the batch report by statistics comprises an algorithm for iterating over the statistics of the source group.
[0307] 98. A non-transitory computer-readable storage medium as described in any of clauses 70 to 97, wherein the algorithm for selecting the iterator type includes an algorithm for receiving a selection of an iterator type by a user from a drop-down menu.
[0308] 99. The non-transitory computer-readable storage medium of any of clauses 70 to 98, further comprising an algorithm for selecting a number of reports to include in a presentation page.
[0309] 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.
[0310] 101. The non-transitory computer-readable storage medium of clause 100, wherein the static content is not automatically populated.
[0311] 102. The non-transitory computer-readable storage medium of any of clauses 70 to 101, further comprising an algorithm for specifying, based on input from a user, aspects of the presentation page including a report template.
[0312] 103. The non-transitory computer-readable storage medium of any of clauses 70 to 102, further comprising an algorithm for specifying, based on input from a user, that aspects of the presentation page include static content.
[0313] Although the foregoing invention has been described in some detail by way of illustration and example for purposes of clarity of understanding, it will be readily apparent to one skilled in the art, based on the teachings of this invention, that certain changes and modifications may be made thereto without departing from the spirit or scope of the appended claims.
[0314] Therefore, the above only illustrates the principle of the present invention.It should be understood that those skilled in the art will be able to design various arrangements, although not explicitly described or shown here, but these arrangements embody the principle of the present invention, and are included in the spirit and scope of the present invention.In addition, all examples and conditional language described herein are mainly intended to help readers understand the concept that the principle of the present invention and the inventor contribute to the further development of this area, and should be understood as not being limited to these specifically enumerated examples and conditions.In addition, all statements describing the principle, aspect and embodiment of the present invention and its specific examples herein are intended to include their structure and function equivalents.In addition, such equivalents are intended to include currently known equivalents and equivalents of future development (that is, any element of the performance identical function of development, no matter how the structure).In addition, anything disclosed herein is not intended to contribute to the public, regardless of whether such disclosure is clearly listed in the claims.
[0315] Therefore, the scope of the present invention is not limited to the exemplary embodiments shown and described herein. Instead, the scope and spirit of the present invention are embodied by the appended claims. In the claims, 35 U.S.C. §112(f) or 35 U.S.C. §112(6) is expressly defined to invoke 35 U.S.C. §112(f) or 35 U.S.C. §112(6) with respect to such limitations in a claim only if the exact phrase "means for..." or the exact phrase "step for..." is listed at the beginning of the limitation in the claim; if the exact phrase is not used in the limitation in the claim, 35 U.S.C. §112(f) or 35 U.S.C. §112(6) is not invoked.
Claims
1. A computer-implemented method for automatically generating a report, the method 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, wherein the source group includes a plurality of data sets and the iterator type corresponds to a type of data present in the source group; as well as Based on the iterator type, a plurality of batch reports are iteratively populated using the plurality of data sets of the source group, wherein each batch report conforms to the report template and is populated using a separate data set from the plurality of data sets of the source group. 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: images, drawings, charts, tables, legends, or text. 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 a user. 6 . The computer-implemented method of claim 1 , wherein iteratively populating the plurality of batch reports comprises automatically identifying aspects of a report template corresponding to the iterator type.
7. The computer-implemented method of any one of the preceding claims, wherein the report template is configured to present flow cytometry data.
8. The computer-implemented method of any one of the preceding claims, wherein each dataset of the source set comprises flow cytometry data.
9. The computer-implemented method of claim 8, wherein the flow cytometry data comprises light scatter data or labeling data or a combination thereof.
10. The computer-implemented method of any preceding claim, further comprising receiving a data set of the source group.
11. The computer-implemented method of any preceding claim, wherein selecting the source group comprises selecting a source group from a drop-down menu.
12. A computer-implemented method according to any one of the preceding claims, wherein the iterator type identifies a category of data present in the source group.
13. A computer-implemented method according to any one of the preceding claims, wherein the iterator type identifies a category of data that can vary among the multiple data sets of the source group.
14. The computer-implemented method of any one of the preceding claims, wherein the iterator type selects a type of data used to populate the plurality of batch reports.
15. A system for automatically generating a report, the system comprising: A processor comprising a memory operatively coupled to the processor, wherein the memory includes instructions stored thereon that, when executed by the processor, cause the processor to: receiving input from an input device specifying a configuration of 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, wherein the source group includes a plurality of data sets and the iterator type corresponds to a 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, wherein each batch report conforms to the report template and is populated using a separate data set from the plurality of data sets of the source group; as well as outputting 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.
Citation Information
Patent Citations
Flow cytometer with optical equalization
US10006852B2
Parallel flow cytometer using radiofrequency multiplexing
US10036699B2
Multi-modal fluorescence imaging flow cytometry system
US10078045B2
Absorbance sprectrum scanning flow cytometry
US10113967B2
System and method for adjusting cytometer measurements
US10145793B2