METHODS, MEDIUMS, AND SYSTEMS FOR BUILDING AND EXECUTING A CHROMATOGRAPHY WORKFLOW
20220196616 · 2022-06-23
Inventors
Cpc classification
G01N30/7233
PHYSICS
G01N30/88
PHYSICS
G06F3/0481
PHYSICS
International classification
Abstract
Exemplary embodiments provide methods, mediums, and systems for building and executing a chromatography workflow. According to the techniques described herein, the steps of the workflow may be arranged into an order and separated by gates and/or transitions. The transitions may represent locations in the workflow where responsibility or stewardship of the data in the workflow passes from one user to a different user. The steps may be represented as pages, with at least some of the steps represented by multiple different pages representing different customization options for visualizations, a configuration of the step, etc. By selecting pages for the various steps and connecting at least some of the steps with transitions, a user can build a workflow very quickly and efficiently. The resulting workflow supports improved auditing, enforces access rights, and improves workflow visualization, among other advantages.
Claims
1. A method comprising: receiving an instruction to generate a workflow for analyzing results of a chromatography experiment, wherein: the workflow comprises a plurality of steps, each step is associated with one or more pages, and each page represents a variation of the step; receiving a selection, via a user interface, of a step to be edited; receiving a selection, via the user interface, of a page for the selected step; and adding a transition to the workflow, the transition representing a change in data custody from a current step of the plurality of steps to a next step of the plurality of steps, wherein the current step is configured to be performed by a first user and the next step is configured to be performed by a second user different from the first user.
2. (canceled)
3. (canceled)
4. (canceled)
5. The method of claim 1, further comprising executing the workflow, the executing comprising: identifying the first user who performed the current step; logging the first user in an audit log; arriving at the transition; identifying the second user responsible for performing the second step; handing off control of the workflow from the first user to the second user; and logging the second user in the audit log.
6. (canceled)
7. The method of claim 1, wherein: a first subset of the plurality of steps are associated with a processing template, the processing template defining one or more customizable pages of visualizations for each step; and a second subset of the plurality of steps are associated with a review template, the review template specifying one or more actions to be taken by a reviewer of data generated by the first subset of the plurality of steps.
8. The method of claim 1, wherein at least one of the pages is associated with a visualization element configured to display data associated with a step corresponding to the page on a user interface, and further comprising receiving a configuration for the visualization element that controls how the visualization element displays the data wherein receiving the configuration comprises: identifying a plurality of predefined display formats associated with the page; and receiving a selection of one of the predefined display formats.
9. (canceled)
10. (canceled)
11. The method of claim 1, further comprising executing the workflow, the executing comprising: receiving an instruction to move from one of the plurality of steps to another of the plurality of steps in the workflow; logging the movement in an audit log.
12. The method of claim 11, wherein the another of the plurality of steps precedes the one of the plurality of steps in the workflow, and further comprising: prompting a user who initiated the movement to enter a reason for returning to the another one of the plurality of steps; and logging the reason in the audit log.
13. The method of claim 11, wherein the user makes a change to a setting at the another one of the plurality of steps, and further comprising: prompting the user who initiated the movement to enter a reason for changing the setting; and logging the reason in the audit log.
14. A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to: receive an instruction to generate a workflow for analyzing results of a chromatography experiment, wherein: the workflow comprises a plurality of steps, each step is associated with one or more pages, and each page represents a variation of the step; receive a selection, via a user interface, of a step to be edited; receive a selection, via the user interface, of a page for the selected step; and add a transition to the workflow, the transition representing a change in data custody from a current step of the plurality of steps to a next step of the plurality of steps, wherein the current step is configured to be performed by a first user and the next step is configured to be performed by a second user different from the first user.
15. (canceled)
16. (canceled)
17. (canceled)
18. The computer-readable storage medium of claim 14, wherein the instructions further configure the computer to execute the workflow, the executing comprising: identify the first user who performed the current step; log the first user in an audit log; arrive at the transition; identify the second user responsible for performing the second step; hand off control of the workflow from the first user to the second user; and log the second user in the audit log.
19. (canceled)
20. The computer-readable storage medium of claim 14, wherein: a first subset of the plurality of steps are associated with a processing template, the processing template define one or more customizable pages of visualizations for each step; and a second subset of the plurality of steps are associated with a review template, the review template specify one or more actions to be taken by a reviewer of data generated by the first subset of the plurality of steps.
21. The computer-readable storage medium of claim 14, wherein at least one of the pages is associated with a visualization element configured to display data associated with a step corresponding to the page on a user interface, and wherein the instructions further configure the computer to receive a configuration for the visualization element that controls how the visualization element displays the data, wherein receiving the configuration comprises: identify a plurality of predefined display formats associated with the page; and receive a selection of one of the predefined display formats.
22. (canceled)
23. (canceled)
24. The computer-readable storage medium of claim 14, wherein the instructions further configure the computer to execute the workflow, the executing comprising: receive an instruction to move from one of the plurality of steps to another of the plurality of steps in the workflow; log the movement in an audit log.
25. The computer-readable storage medium of claim 24, wherein the another of the plurality of steps precedes the one of the plurality of steps in the workflow, and wherein the instructions further configure the computer to: prompt a user who initiated the movement to enter a reason for returning to the another one of the plurality of steps; and log the reason in the audit log.
26. The computer-readable storage medium of claim 24, wherein the user makes a change to a setting at the another one of the plurality of steps, and wherein the instructions further configure the computer to: prompt the user who initiated the movement to enter a reason for changing the setting; and log the reason in the audit log.
27. A computing apparatus comprising: a processor; and a memory storing instructions that, when executed by the processor, configure the apparatus to: receive an instruction to generate a workflow for analyzing results of a chromatography experiment, wherein: the workflow comprises a plurality of steps, each step is associated with one or more pages, and each page represents a variation of the step; receive a selection, via a user interface, of a step to be edited; receive a selection, via the user interface, of a page for the selected step; and add a transition to the workflow, the transition representing a change in data custody from a current step of the plurality of steps to a next step of the plurality of steps, wherein the current step is configured to be performed by a first user and the next step is configured to be performed by a second user different from the first user.
28. (canceled)
29. (canceled)
30. (canceled)
31. The computing apparatus of claim 27, wherein the instructions further configure the apparatus to execute the workflow, the executing comprising: identify the first user who performed the current step; log the first user in an audit log; arrive at the transition; identify the second user responsible for performing the second step; hand off control of the workflow from the first user to the second user; and log the second user in the audit log.
32. (canceled)
33. The computing apparatus of claim 27, wherein: a first subset of the plurality of steps are associated with a processing template, the processing template define one or more customizable pages of visualizations for each step; and a second subset of the plurality of steps are associated with a review template, the review template specify one or more actions to be taken by a reviewer of data generated by the first subset of the plurality of steps.
34. The computing apparatus of claim 27, wherein at least one of the pages is associated with a visualization element configured to display data associated with a step corresponding to the page on a user interface, and wherein the instructions further configure the apparatus to receive a configuration for the visualization element that controls how the visualization element displays the data, wherein receiving the configuration comprises: identify a plurality of predefined display formats associated with the page; and receive a selection of one of the predefined display formats.
35. (canceled)
36. (canceled)
37. The computing apparatus of claim 27, wherein the instructions further configure the apparatus to execute the workflow, the executing comprising: receive an instruction to move from one of the plurality of steps to another of the plurality of steps in the workflow; log the movement in an audit log.
38. The computing apparatus of claim 37, wherein the another of the plurality of steps precedes the one of the plurality of steps in the workflow, and wherein the instructions further configure the apparatus to: prompt a user who initiated the movement to enter a reason for returning to the another one of the plurality of steps; and log the reason in the audit log, or wherein the user makes a change to a setting at the another one of the plurality of steps, and wherein the instructions further configure the apparatus to: prompt the user who initiated the movement to enter a reason for changing the setting; and log the reason in the audit log.
39. (canceled)
Description
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
[0027] To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced.
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
DETAILED DESCRIPTION
[0039] The process of analyzing chromatography results may take place in several steps. According to the techniques described herein, all the steps of a given chromatography analysis may be organized into a workflow, separated by gates and/or transitions. The transitions may represent locations in the workflow where responsibility or stewardship of the data in the workflow passes from one user to a different user. The steps may be represented as pages, with at least some of the steps represented by multiple different pages representing different customization options for visualizations, a configuration of the step, etc.
[0040] By selecting pages for the various steps and connecting at least some of the steps with transitions, a user can build a workflow very quickly and efficiently. The resulting workflow supports auditing by logging information at various stages. Furthermore, the workflow enforces access rights at the transitions, ensuring that only authorized users perform the requisite steps. It also improves the ability of an application responsible for executing the workflow to visualize the workflow—because the application knows that a given user with be responsible for the steps between two transitions, the application only needs to request the workflow steps and data between the two transitions when the user responsible for those steps is interacting with the transitions. Subsequent workflow steps do not need to be retrieved until the next user receives a handoff of the workflow. In some cases, a limited number of steps outside the transitions may be retrieved so that they can be rendered in a navigation element. In this way, the current user may be informed of what processing steps are coming next, and who might be responsible for performing them.
[0041] These and other features will be described in more detail below with reference to the accompanying figures.
[0042] For purposes of illustration,
[0043] A sample 102 is injected into a liquid chromatograph 104 through an injector 106. A pump 108 pumps the sample through a column 110 to separate the mixture into component parts according to retention time through the column.
[0044] The output from the column is input to a mass spectrometer 112 for analysis. Initially, the sample is desolved and ionized by a desolvation/ionization device 114. Desolvation can be any technique for desolvation, including, for example, a heater, a gas, a heater in combination with a gas or other desolvation technique. Ionization can be by any ionization techniques, including for example, electrospray ionization (ESI), atmospheric pressure chemical ionization (APCI), matrix assisted laser desorption (MALDI) or other ionization technique. Ions resulting from the ionization are fed to a collision cell 118 by a voltage gradient being applied to an ion guide 116. Collision cell 118 can be used to pass the ions (low-energy) or to fragment the ions (high-energy).
[0045] Different techniques (including one described in U.S. Pat. No. 6,717,130, to Bateman et al., which is incorporated by reference herein) may be used in which an alternating voltage can be applied across the collision cell 118 to cause fragmentation. Spectra are collected for the precursors at low-energy (no collisions) and fragments at high-energy (results of collisions).
[0046] The output of collision cell 118 is input to a mass analyzer 120. Mass analyzer 120 can be any mass analyzer, including quadrupole, time-of-flight (TOF), ion trap, magnetic sector mass analyzers as well as combinations thereof. A detector 122 detects ions emanating from mass analyzer 122. Detector 122 can be integral with mass analyzer 120. For example, in the case of a TOF mass analyzer, detector 122 can be a microchannel plate detector that counts intensity of ions, i.e., counts numbers of ions impinging it.
[0047] A raw data store 124 may provide permanent storage for storing the ion counts for analysis. For example, raw data store 124 can be an internal or external computer data storage device such as a disk, flash-based storage, and the like. An analysis computer 126 analyzes the stored data. Data can also be analyzed in real time without requiring storage in a storage medium 124. In real time analysis, detector 122 passes data to be analyzed directly to computer 126 without first storing it to permanent storage.
[0048] Collision cell 118 performs fragmentation of the precursor ions. Fragmentation can be used to determine the primary sequence of a peptide and subsequently lead to the identity of the originating protein. Collision cell 118 includes a gas such as helium, argon, nitrogen, air, or methane. When a charged precursor interacts with gas atoms, the resulting collisions can fragment the precursor by breaking it up into resulting fragment ions. Such fragmentation can be accomplished as using techniques described in Bateman by switching the voltage in a collision cell between a low voltage state (e.g., low energy, <5 V) which obtains MS spectra of the peptide precursor, with a high voltage state (e.g., high or elevated energy, >15V) which obtains MS spectra of the collisionally induced fragments of the precursors. High and low voltage may be referred to as high and low energy, since a high or low voltage respectively is used to impart kinetic energy to an ion.
[0049] Various protocols can be used to determine when and how to switch the voltage for such an MS/MS acquisition. For example, conventional methods trigger the voltage in either a targeted or data dependent mode (data-dependent analysis, DDA). These methods also include a coupled, gas-phase isolation (or pre-selection) of the targeted precursor. The low-energy spectra are obtained and examined by the software in real-time. When a desired mass reaches a specified intensity value in the low-energy spectrum, the voltage in the collision cell is switched to the high-energy state. The high-energy spectra are then obtained for the pre-selected precursor ion. These spectra contain fragments of the precursor peptide seen at low energy. After sufficient high-energy spectra are collected, the data acquisition reverts to low-energy in a continued search for precursor masses of suitable intensities for high-energy collisional analysis.
[0050] Different suitable methods may be used with a system as described herein to obtain ion information such as for precursor and product ions in connection with mass spectrometry for an analyzed sample. Although conventional switching techniques can be employed, embodiments may also use techniques described in Bateman which may be characterized as a fragmentation protocol in which the voltage is switched in a simple alternating cycle. This switching is done at a high enough frequency so that multiple high- and multiple low-energy spectra are contained within a single chromatographic peak. Unlike conventional switching protocols, the cycle is independent of the content of the data. Such switching techniques described in Bateman, provide for effectively simultaneous mass analysis of both precursor and product ions. In Bateman, using a high- and low-energy switching protocol may be applied as part of an LC/MS analysis of a single injection of a peptide mixture. In data acquired from the single injection or experimental run, the low-energy spectra contains ions primarily from unfragmented precursors, while the high-energy spectra contain ions primarily from fragmented precursors. For example, a portion of a precursor ion may be fragmented to form product ions, and the precursor and product ions are substantially simultaneously analyzed, either at the same time or, for example, in rapid succession through application of rapidly switching or alternating voltage to a collision cell of an MS module between a low voltage (e.g., generate primarily precursors) and a high or elevated voltage (e.g. generate primarily fragments) to regulate fragmentation. Operation of the MS in accordance with the foregoing techniques of Bateman by rapid succession of alternating between high (or elevated) and low energy may also be referred to herein as the Bateman technique and the high-low protocol.
[0051] The data acquired by the high-low protocol allows for the accurate determination of the retention times, mass-to-charge ratios, and intensities of all ions collected in both low- and high-energy modes. In general, different ions are seen in the two different modes, and the spectra acquired in each mode may then be further analyzed separately or in combination. The ions from a common precursor as seen in one or both modes will share the same retention times (and thus have substantially the same scan times) and peak shapes. The high-low protocol allows the meaningful comparison of different characteristics of the ions within a single mode and between modes. This comparison can then be used to group ions seen in both low-energy and high-energy spectra.
[0052] In summary, such as when operating the system using the Bateman technique, a sample 102 is injected into the LC/MS system. The LC/MS system produces two sets of spectra, a set of low-energy spectra and a set of high-energy spectra. The set of low-energy spectra contain primarily ions associated with precursors. The set of high-energy spectra contain primarily ions associated with fragments. These spectra are stored in a raw data store 124. After data acquisition, these spectra can be extracted from the raw data store 124 and displayed and processed by post-acquisition algorithms in the analysis computer 126.
[0053] The analysis computer 126 may operate according to a workflow, providing visualizations of data to an analyst at each of the workflow steps and allowing the analyst to generate output data by performing processing specific to the workflow step. The workflow may be generated and retrieved via a client browser 132 (a suitable environment for building and storing a workflow is depicted in
[0054] The exemplary embodiments described herein may be performed at the client browser 132 and analysis computer 126, among other locations. An example of a device suitable for use as an analysis computer 126 and/or client browser 132, is depicted in
[0055]
[0056] The initial set of inputs 204 may include a sample set 206, which includes the raw (unprocessed) data received from the chromatography experimental apparatus. This may include measurements or readings, such as mass-to-charge ratios. The measurements that are initially present in the sample set 206 may be measurements that have not been processed, for example to perform peak detection or other analysis techniques. The sample set 206 may include data in the form of a stream (e.g., a sequential list of data values received in a steady, continuous flow from an experimental apparatus).
[0057] The initial set of inputs 204 may also include a processing method 208, which may be a template method (as discussed above) that is applied to (and hence embedded in) the workflow 202. The processing method 208 may include settings to be applied at various stages of the workflow 202.
[0058] The initial set of inputs 204 may also include a result set 210. When created, the result set 210 may include the information from the sample set 206. In some cases, the sample set 206 may be processed in some initial manner when copied into the result set 210—for example, MS data may require extracting, smoothing, etc. before being provided to a workflow 202. The processing applied to the initial result set 210 may be determined on a case-by-case basis based on the workflow 202 being used. Once the raw data is copied from a sample set 206 to create a result set 210, that result set 210 may be entirely independent from the sample set 206 for the remainder of its lifecycle.
[0059] The workflow 202 may be divided into a set of stages. Each stage may be associated with one or more stage processors that perform calculations related to that stage. Each stage processor may be associated with stage settings that affect how the processor generates output from a given input.
[0060] Stages may be separated from each other by step boundaries 238. The step boundaries 238 may represent points at which outputs have been generated by a stage and stored in the result set, at which point processing may proceed to the next stage. Some stage boundaries may require certain types of input in order to be crossed (for example, the data generated at a given stage might need to be reviewed by one or more reviewers, who need to provide their authorization in order to cross the step boundary 238 to the next stage). Step boundaries 238 may apply any time a user moves from one stage to a different stage, in any direction. For example, a step boundary 238 exists when a user moves from the initialization stage 212 to the channel processing stage 214, but also exists when a user attempts to move backwards from the quantitation stage 222 back to the integration stage 216. Step boundaries 238 may be ungated, meaning that once a user determines to move to the next stage no further input (or only a cursory input) is required, or gated, meaning that the user must provide some sort of confirmation indicating that they wish to proceed to a selected stage (perhaps in response to a warning raised by the analysis computer 126), or a reason for moving to a stage, or credentials authorizing the workflow 202 to proceed to the selected stage.
[0061] In an initialization stage 212, each of the stage processors may respond by clearing the results that it generates. For example, the stage processor for the channel processing stage 214 may clear all its derived channels and peak tables (see below). At any point in time, clearing a stage setting may clear stage tracking from the current stage and any subsequent stage. In this example, the initialization stage 212 does not generate any output.
[0062] After crossing a step boundary 238, processing may proceed to a channel processing stage 214. As noted above, chromatography detectors may be associated with one or more channels on which data may be collected. At the channel processing stage 214, the analysis computer 126 may derive a set of processing channels present in the data in the result set 210 and may output a list of processed channels 226. The list of processed channels 226 may be stored in a versioned sub-document associated with the channel processing stage 214, which may be included in the result set 210.
[0063] After crossing a step boundary 238, processing may proceed to an integration stage 216, which identifies peaks in the data in the result set 210 based on the list of processed channels 226. The integration stage 216 may identify the peaks using techniques specified in the settings for the integration stage 216, which may be defined in the processing method 208. The integration stage 216 may output a peak table 228 and store the peak table 228 in a versioned sub-document associated with the integration stage 216. The sub-document may be included in the result set 210.
[0064] After crossing a step boundary 238, processing may proceed to identification stage 218. In this stage, the analysis computer 126 may identify components in the mixture analyzed by the chromatography apparatus based on the information in the peak table 228. The identification stage 218 may output a component table 230, which includes a list of components present in the mixture. The component table 230 may be stored in a versioned sub-document associated with the identification stage 218. The sub-document may be included in the result set 210.
[0065] After crossing a step boundary 238, processing may proceed to calibration stage 220. During a chromatography experiment, calibration compounds may be injected into the chromatography apparatus. This process allows an analyst to account for subtle changes in electronics, cleanliness of surfaces, ambient conditions in the lab, etc. throughout an experiment. In the calibration stage 220, data obtained with respect to these calibration compounds is analyzed and used to generate a calibration table 232, which allows the analysis computer 126 to make corrections to the data to ensure that it is reliable and reproducible. The calibration table 232 may be stored in a versioned sub-document associated with the calibration stage 220. The sub-document may be included in the result set 210.
[0066] After crossing a step boundary 238, processing may proceed to quantitation stage 222. Quantitation refers to the process of determining a numerical value for the quantity of an analyte in a sample. The analysis computer 126 may use the results from the previous stages in order to quantify the components included in the component table 230. The quantitation stage 222 may update 234 the component table 230 stored in the result set 210 with the results of quantitation. The updated component table 230 may be stored in a versioned sub-document associated with the quantitation stage 222. The sub-document may be included in the result set 210.
[0067] After crossing a step boundary 238, processing may proceed to summary stage 224. In the summary stage 224, the results of each of the previous stages may be analyzed and incorporated into a report of summary results 236. The summary results 236 may be stored in a versioned sub-document associated with the summary stage 224. The sub-document maybe included in the result set 210.
[0068] As used herein, a step may correspond to the above-noted stages. Alternatively, a single stage may include multiple steps, or multiple stages may be organized into a single step. In any event, all the activities performed in a given step should be performable by the same user or group of users, and each step is associated with one or more pages that describe a set of configuration options for the step (e.g., visualization options, review options, step configuration settings, etc.)
[0069] There may be a transition at some or all of the step boundaries 238, although not every step boundary 238 need be a transition. A transition may signify a change in responsibility for a set of data from a first user or group of users to a second, distinct user or group of users.
[0070]
[0071] In the user interface, a set of steps 302a-302g are arranged in an order. The user may be provided with a set of steps that can be arranged on the interface or may select from a number of pregenerated templates. The user may be permitted to move the steps in the order, although the workflow builder may enforce a relative ordering of certain steps (e.g., requiring that the integrate peaks step 302c be performed before the calibration step 302e).
[0072] Some or all of the steps may be separated by transitions 304a-304c. The transitions may be associated with a direction (e.g., allowing movement in the forward direction in the order, a reverse direction, or a forward direction and a reverse direction). The application implementing the workflow may enforce the transitions by only allowing movement in the workflow as indicated by the transitions. At each of the transitions, the application may enforce a change in data stewardship; responsibility for the data may be changed from a group of users associated with the steps before the transition to a group of users associated with the steps after the transition. The application may require that the group of users relinquishing and/or acquiring data access rights provide a signature.
[0073] Each of the steps 302a-302g may be associated with one or more pages defining different configurations for the steps (e.g., configurations and arrangements of visualization elements, settings for the step and/or visualization elements, etc.). The workflow builder may receive, via a user interface, a selection of one of the steps 302a-302g and, in response, may display images of the pages available for use with the selected step. The images may show different configurations and arrangements of the visualization elements for the step. Upon receiving a selection of an image associated with one of the pages, the system may associate that page with the selected step. The page may define instructions as to how to arrange and configure the visualization elements/step. The application implementing the workflow may retrieve the page definitions and apply them to configure the visualization elements/steps being implemented by the application.
[0074]
[0075] The steps may be organized into sequences 404, 416. Each sequence may be defined by a set of users that bears responsibility for the data generated at each step in the sequence. Whether a user has rights to run the step and/or generate data may be defined by a flag in a user profile associated with the user in a data system associated with the experimental analysis. For example, a data analyst or team of analysts may be responsible for generating data at the first step 406, second step 408, and third step 410 of the processing sequence 404. A reviewer or team of reviewers may be responsible for reviewing the data at the first step 418, second step 420, and third step 422 of the review sequence 416.
[0076] The identity and/or ordering of the steps within a sequence 404, 416 may be defined by a template. For example, the steps that are included in processing sequence 404 may be defined by a processing sequence template 412, which may also define their relative ordering and whether any steps are optional. Similarly, the steps that are included in the review sequence 416 may be defined by a review sequence template 426.
[0077]
[0078]
[0079] Although effective, this organizational structure can be difficult to understand for users because it effectively represents a “workflow of workflows.” Users generally expect that all of the steps for performing data analysis for a given chromatography experiment will be organized into a single workflow. It can also make navigation between workflows confusing, since the application guiding execution of the workflow may have difficulty interpreting how to render transitions between two different workflows. Furthermore, this concept contemplates the user interface for a workflow builder UI, since users generally have to work on each workflow in isolation and then combine individual workflows into a chain of workflows in order to generate a complete analysis of experimental data.
[0080]
[0081] Conceptually, this embodiment is easier for users to grasp because it corresponds to preconceived notions of what a workflow should be. This embodiment also allows the workflow to be queried flexibly: for instance, a user can request a complete workflow, or a specific sequence within the workflow. It also allows logic to be built into the workflow itself that can simplify logic built into applications that visualize or execute the workflow; for example, a sequence could be coded as a “review” sequence, which may simplify tracking logic built into the application that determines whether a transition from one sequence to another is permitted.
[0082] However, as compared to the second embodiment, any actions associated with the transition (e.g., a signoff from one sequence to another) may need to be kept relatively simple, since the design of the transition needs to accommodate an entire sequence of steps.
[0083]
[0084] This example has the benefit of matching users' understanding of the nature of a workflow, but simplifies the process by which an application uses and consumes the workflows as compared to the embodiment of
[0085]
[0086] The environment includes a client browser 132, which allows an end user to interact with the system. The client browser 132 may provide user interfaces for creating and editing workflows.
[0087] The client browser 132 may manage workflows through a workflow builder 602. The workflow builder 602 may interact with a chromatography data system 606 to build the workflows. The workflow builder 602 and chromatography data system 606 may store and retrieve data related to the workflow in a data store 604.
[0088] The chromatography data system 606 may be responsible for defining and implementing pages that can be bound to each step in a workflow. These pages may be described by page definitions that the chromatography data system 606 stores in the data store 604. The workflow builder 602 may discover which pages are available for use with a given step via a RESTful endpoint 608. For example, when a user selects a step in the workflow for editing, the workflow builder 602 may issue a GET request to the RESTful endpoint 608 to retrieve any pages matching a page classification associated with the step (each step in a workflow may be represented by a hard-coded named classification of page definitions; when a step is added to the workflow, the user may be required to choose one variant from the associated classification of page definitions to assign that step to the workflow).
[0089] The page variations retrieved from the RESTful endpoint 608 may be presented to a user in a user interface, and the user may select one for inclusion in the workflow. Because the variations may define different configurations for visualization elements associated with the step, a summary/thumbnail image showing the configuration may be displayed in the user interface. The image may be retrieved from the chromatography data system 606 by calling into an HTTP endpoint 610.
[0090] The workflow builder 602 may use selections made in the user interface to build a workflow and store it in the data store 604. When a user wishes to consume (e.g., execute) the workflow, this process may be performed through the chromatography data system 606, which serves as a point of contact for several different stages for chromatography analysis in existing chromatography environments. To this end, the workflow builder 602 may expose a RESTful endpoint 612 that allows the current user to discover workflows available to them, based on (e.g.) a team folder context of the user. The chromatography data system 606 may make a GET call into the RESTful endpoint 612 to retrieve workflows per user per team folder context.
[0091]
[0092] At block 702, the system may receive an instruction to generate or edit a workflow. This instruction may be received via a user interface presented on the client browser 132.
[0093] In response to receiving the instruction, at block 704 the system may retrieve one or more workflow templates. The workflow template may define an initial set of steps and an ordering for the steps. The workflow template may be one of a number of predefined workflow templates, each template corresponding to a set of steps commonly performed in different types of chromatography analyses. The template(s) to be retrieved may be selected via the user interface and/or specified as part of the instruction received at block 702. Alternatively, the system may begin with a blank workflow, allowing users to add workflow steps on an ad hoc basis.
[0094] At block 706, the system may receive a selection of a workflow step. This may be an existing step in the workflow that the user wishes to configure or edit or may be a selection of a new step for inclusion in the workflow. The user may define where in the workflow they wish the step to be—for example by defining a location among any existing workflow steps, or by moving an existing workflow step to a new location.
[0095] At block 708, the system may retrieve a list of pages for the selected step. For example, in response to receiving the selection of the workflow step at block 706, the workflow builder 602 may query the RESTful endpoint 608 to identify any available pages, and query the HTTP endpoint 610 of the chromatography data system 606 to retrieve images associated with the available pages, as described above. This may allow the workflow builder 602 to present the thumbnail images for the available pages at block 710 and receive a selection of one of the images at block 712. In response to receiving the selection of the image, the workflow builder 602 may configure the workflow to include the page corresponding to the selected image at block 714.
[0096] Each page may include one or more visualizations, and it may be possible to configure the visualization(s) by adjusting settings associated with the visualizations. The user may manually adjust the settings and/or may select from a number of predefined setting options for the visualizations. This configuration information may be stored as part of the page configuration for the step.
[0097] At decision block 716, the system may determine if more steps remain to be configured. For example, the workflow builder 602 may present an interface allowing the user to continue to add or edit steps, or to select an option for moving to the next part of workflow definition.
[0098] If more steps remain to be configured, then processing may revert to block 706 and the system may receive a selection of the next step to be processed. Otherwise, processing may proceed to block 718.
[0099] At block 718, the system may define sequences among the existing steps. For example, at block 720 the system may allow the user to select a step boundary (a location between two existing steps) in the interface and associate a transition with the step boundary. At block 722, the user may, using a user interface, define the transition. This may involve defining, for example, which directions the user can pass through the transition (e.g., forward, backward, or both), whether a warning is to be provided with the transition or whether a signature is required when passing through the transition, and/or what users become responsible for the data when passing through the data in each allowable direction. The steps between each transition may form a sequence.
[0100] At block 724, the system may store the transitions. The transitions may each be created as an instance of a step (e.g., using the same data structure as is used to define the steps in block 704 or block 706. The transitions may be stored as part of the workflow, in the same way steps are represented in the workflow. In some embodiments, an implicit transition may be added at the beginning of the workflow, and the system may prompt the user to identify which users should bear responsibility for the first sequence (alternatively, this may be specified as part of the selection process for selecting the templates to be included in the workflow). An implicit transition may also be added to the end of the workflow, indicating that the workflow is finished and that the results should be marked as final and locked from further editing.
[0101] At decision block 726, the system may determine if any more transitions remain to be defined. For example, the user interface may present the user with the option of continuing to define sequences or indicating that they are finished with this process. If more transitions remain to be defined, then processing may return to block 720. Otherwise, processing may proceed to block 728 and the system may store the workflow in the data store 604. The workflow may be represented as an encapsulating data structure that wraps around other data structures representing steps and gates. Gates have not been included in the flowchart of
[0102] Processing may then proceed to block 730 and end.
[0103]
[0104] Processing begins at block 732, when a user opens a user interface via the client browser 132. The interface may present the user with the option to select a workflow for execution, and at block 734 the user may identify, through the interface, the workflow to be started. The system may identify the location in the data store 604 at which the workflow's structure is stored. At the same time, raw data from an experiment to be analyzed by the workflow may be retrieved. The raw data may be in the form of a data stream stored in a raw data store 124.
[0105] At block 736, the system may retrieve the next sequence in the workflow for execution. When first starting, first step or sequence may be selected. In some embodiments, the system refrains from retrieving all the steps in the workflow, and only retrieves the sequence of steps that end at the next transition. In other embodiments, the system retrieves those steps and a predefined number (e.g., one) of steps beyond the transition. Similarly, if there were steps before the current sequence, a predefined number (e.g., one) of those steps may be retrieved. The user interface may be updated with a navigation pane that indicates the steps in the current sequence, the current step being implemented, and/or any retrieved steps that precede or succeed the current sequence.
[0106] At block 738, the system may authenticate the current user or users to verify that they are permitted to access the current sequence. For example, the transition into the current sequence may define the specific users, or a class of users (e.g., “reviewers” or “data analysts”) that are permitted to access the current sequence. The system may consult a profile of the current user accessible to the system to ensure that the current user(s) match the authorized list or classes of users. If not, the system may display an error message indicating that the current user is not authorized and terminate processing.
[0107] The users who are authenticated at block 783 may be recorded in an audit log, which is a data structure that stores information and events about the workflow as it is executed. As control is handed off to different users through the transitions, the new users that are authenticated in subsequent iterations of block 738 may also be logged in the audit log.
[0108] If the users are authorized, then at block 740 the system may retrieve the next step in the sequence identified at block 736. At this block, the system may (for example) retrieve the page configuration for the current step, as was defined in block 714 in
[0109] At block 742, the system may retrieve perform any calculations associated with the step in order to generate output results. As the system performs calculations, it may generate metadata related to the workflow. The metadata may be stored in a metadata catalog 130 in a document store 128, separate from the data stream stored in the raw data store 124.
[0110] The system may rely on one or more settings for the workflow in order to perform the calculations at block 742. Before performing the calculations, the user may change one or more of the settings. In this event, the system may log the changes in the audit log. The system may also optionally prompt the user for a reason as to why the settings were changed, and may log the reason in the audit log.
[0111] At block 744, the system may identify any visualization parameters defined in the page associated with the step, and may construct one or more visualization elements for display in the user interface based on the parameters. The system may configure or format the visualization elements according to the configuration specified by the page, and display the configured visualization elements on the user interface at block 746.
[0112] At block 748, the system may receive a movement instruction to move away from the current step. This may be an instruction to move to a next step, to move backwards to a previous step, or to exit the workflow. In some embodiments, any movement through the workflow may be logged in the audit log. In other embodiments, only certain types of movement may trigger auditing, such as when the user moves backwards to a previous step.
[0113] If the movement instruction would cause the user to move forward or backward over a transition to a different sequence (“YES” at decision block 750), then the movement may be logged and the user may be asked for a signature or confirmation. At this point, the workflow will transition to a new set of authorized users, and so processing returns to block 736 where the next sequence is retrieved. The navigation panel may be updated with the new steps retrieved at block 736. The system may log the handoff from one set of users to another in the audit log.
[0114] If the movement is forward to another step within the same sequence (“YES” at block 752), then further authentication is not required; processing may return to block 740, and the next step to be executed may be retrieved.
[0115] If the movement is backwards to a previous step within the same sequence (“YES” at block 754), then no new authentication is required. However, the user may be prompted for a reason for moving backwards to a previous step at block 756, and the reason may be logged in the audit log. After providing their reason, processing may proceed to block 758 and the system may move to the requested step.
[0116] If the request is a request to exit the workflow (“NO” at decision block 750, decision block 752, and decision block 754, then processing may proceed to done block 760 and end.
[0117]
[0118] Computer software, hardware, and networks may be utilized in a variety of different system environments, including standalone, networked, remote-access (aka, remote desktop), virtualized, and/or cloud-based environments, among others.
[0119] The term “network” as used herein and depicted in the drawings refers not only to systems in which remote storage devices are coupled together via one or more communication paths, but also to stand-alone devices that may be coupled, from time to time, to such systems that have storage capability. Consequently, the term “network” includes not only a “physical network” but also a “content network,” which is comprised of the data—attributable to a single entity—which resides across all physical networks.
[0120] The components may include data server 810, web server 806, and client computer 804, laptop 802. Data server 810 provides overall access, control and administration of databases and control software for performing one or more illustrative aspects described herein. Data serverdata server 810 may be connected to web server 806 through which users interact with and obtain data as requested. Alternatively, data server 810 may act as a web server itself and be directly connected to the internet. Data server 810 may be connected to web server 806 through the network 808 (e.g., the internet), via direct or indirect connection, or via some other network. Users may interact with the data server 810 using remote computer 804, laptop 802, e.g., using a web browser to connect to the data server 810 via one or more externally exposed web sites hosted by web server 806. Client computer 804, laptop 802 may be used in concert with data server 810 to access data stored therein, or may be used for other purposes. For example, from client computer 804, a user may access web server 806 using an internet browser, as is known in the art, or by executing a software application that communicates with web server 806 and/or data server 810 over a computer network (such as the internet).
[0121] Servers and applications may be combined on the same physical machines, and retain separate virtual or logical addresses, or may reside on separate physical machines.
[0122] Each component data server 810, web server 806, computer 804, laptop 802 may be any type of known computer, server, or data processing device. Data server 810, e.g., may include a processor 812 controlling overall operation of the data server 810. Data server 810 may further include RAM 816, ROM 818, network interface 814, input/output interfaces 820 (e.g., keyboard, mouse, display, printer, etc.), and memory 822. Input/output interfaces 820 may include a variety of interface units and drives for reading, writing, displaying, and/or printing data or files. Memory 822 may further store operating system software 824 for controlling overall operation of the data server 810, control logic 826 for instructing data server 810 to perform aspects described herein, and other application software 828 providing secondary, support, and/or other functionality which may or may not be used in conjunction with aspects described herein. The control logic may also be referred to herein as the data server software control logic 826. Functionality of the data server software may refer to operations or decisions made automatically based on rules coded into the control logic, made manually by a user providing input into the system, and/or a combination of automatic processing based on user input (e.g., queries, data updates, etc.).
[0123] Memory 1122 may also store data used in performance of one or more aspects described herein, including a first database 832 and a second database 830. In some embodiments, the first database may include the second database (e.g., as a separate table, report, etc.). That is, the information can be stored in a single database, or separated into different logical, virtual, or physical databases, depending on system design. Web server 806, computer 804, laptop 802 may have similar or different architecture as described with respect to data server 810. Those of skill in the art will appreciate that the functionality of data server 810 (or web server 806, computer 804, laptop 802) as described herein may be spread across multiple data processing devices, for example, to distribute processing load across multiple computers, to segregate transactions based on geographic location, user access level, quality of service (QoS), etc.
[0124] One or more aspects may be embodied in computer-usable or readable data and/or computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices as described herein. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other device. The modules may be written in a source code programming language that is subsequently compiled for execution, or may be written in a scripting language such as (but not limited to) HTML or XML. The computer executable instructions may be stored on a computer readable medium such as a nonvolatile storage device. Any suitable computer readable storage media may be utilized, including hard disks, CD-ROMs, optical storage devices, magnetic storage devices, and/or any combination thereof. In addition, various transmission (non-storage) media representing data or events as described herein may be transferred between a source and a destination in the form of electromagnetic waves traveling through signal-conducting media such as metal wires, optical fibers, and/or wireless transmission media (e.g., air and/or space). various aspects described herein may be embodied as a method, a data processing system, or a computer program product. Therefore, various functionalities may be embodied in whole or in part in software, firmware and/or hardware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA), and the like. Particular data structures may be used to more effectively implement one or more aspects described herein, and such data structures are contemplated within the scope of computer executable instructions and computer-usable data described herein.
[0125] The components and features of the devices described above may be implemented using any combination of discrete circuitry, application specific integrated circuits (ASICs), logic gates and/or single chip architectures. Further, the features of the devices may be implemented using microcontrollers, programmable logic arrays and/or microprocessors or any combination of the foregoing where suitably appropriate. It is noted that hardware, firmware and/or software elements may be collectively or individually referred to herein as “logic” or “circuit.”
[0126] It will be appreciated that the exemplary devices shown in the block diagrams described above may represent one functionally descriptive example of many potential implementations. Accordingly, division, omission or inclusion of block functions depicted in the accompanying figures does not infer that the hardware components, circuits, software and/or elements for implementing these functions would be necessarily be divided, omitted, or included in embodiments.
[0127] At least one computer-readable storage medium may include instructions that, when executed, cause a system to perform any of the computer-implemented methods described herein.
[0128] Some embodiments may be described using the expression “one embodiment” or “an embodiment” along with their derivatives. These terms mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment. Moreover, unless otherwise noted the features described above are recognized to be usable together in any combination. Thus, any features discussed separately may be employed in combination with each other unless it is noted that the features are incompatible with each other.
[0129] With general reference to notations and nomenclature used herein, the detailed descriptions herein may be presented in terms of program procedures executed on a computer or network of computers. These procedural descriptions and representations are used by those skilled in the art to most effectively convey the substance of their work to others skilled in the art.
[0130] A procedure is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. These operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical, magnetic or optical signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It proves convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be noted, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to those quantities.
[0131] Further, the manipulations performed are often referred to in terms, such as adding or comparing, which are commonly associated with mental operations performed by a human operator. No such capability of a human operator is necessary, or desirable in most cases, in any of the operations described herein, which form part of one or more embodiments. Rather, the operations are machine operations. Useful machines for performing operations of various embodiments include general purpose digital computers or similar devices.
[0132] Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. These terms are not necessarily intended as synonyms for each other. For example, some embodiments may be described using the terms “connected” and/or “coupled” to indicate that two or more elements are in direct physical or electrical contact with each other. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
[0133] Various embodiments also relate to apparatus or systems for performing these operations. This apparatus may be specially constructed for the required purpose or it may comprise a general purpose computer as selectively activated or reconfigured by a computer program stored in the computer. The procedures presented herein are not inherently related to a particular computer or other apparatus. Various general purpose machines may be used with programs written in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description given.
[0134] It is emphasized that the Abstract of the Disclosure is provided to allow a reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein,” respectively. Moreover, the terms “first,” “second,” “third,” and so forth, are used merely as labels, and are not intended to impose numerical requirements on their objects.
[0135] What has been described above includes examples of the disclosed architecture. It is, of course, not possible to describe every conceivable combination of components and/or methodologies, but one of ordinary skill in the art may recognize that many further combinations and permutations are possible. Accordingly, the novel architecture is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims.