Patent Description:
A mass analysis system, such as a mass spectrometry (MS) system and/or a liquid chromatography-mass spectrometry (LC-MS) system, may be capable of providing detailed characterizations of complex sample sets, including biological matrices, food and environment (F&E) materials, pharmaceutical compounds, metabolic pathway analyses, and/or the like.

To streamline the collection and storage of mass analysis related data, the mass analysis system may be coupled to a data acquisition system. For example, the data acquisition system may be a data streaming service where all mass analysis related data acquired from the mass analysis system may be continually streamed through the data acquisition system and stored in one or more connected databases.

After the mass analysis related data has been streamed and stored, post-acquisition processing may be performed on the mass analysis related data, such as peak detection, instrument calibration, drift analyses, etc. In typical cases, more than one application (or more than one type of application) may perform a specific post-acquisition processing on the data, such as peak detection. It may be possible that other various types of post-acquisition processing on the mass analysis related data may be performed based on the different types of analyses required, e.g., instrument-related analyses, user-specific analyses, application-level filtering.

While the data acquisition system provides a versatile data acquisition framework for streaming and storing raw continuum data, it is limited in that important mass analyses, like peak detection, are performed after data acquisition and not in real-time. Moreover, because numerous applications may perform specific post-acquisition processing on the mass analysis related data, the output of that specific analysis may be inconsistent and disjoined across the numerous applications. Further, the collection of raw continuum data by the data acquisition system inherently increases the need for storage space and places a great burden on the application servers, databases, and the network for post-acquisition processing. <CIT>) describes techniques for processing data. Sample analysis is performed generating scans of data. Each scan comprises a set of data elements each associating an ion intensity count with a plurality of dimensions including a retention time dimension and a mass to charge ratio dimension. The scans are analyzed to identify one or more ion peaks. Analyzing includes filtering a first plurality of the scans producing a first plurality of filtered output scans. The filtering including first filtering producing a first filtering output, wherein the first filtering includes executing a plurality of threads in parallel which apply a first filter to the first plurality of scans to produce the first filtering output. Each of the plurality of threads computes at least one filtered output point for at least one corresponding input point included in the plurality of scans. Analyzing includes detecting one or more peaks using the filtered output scans. <CIT>) provides a method of correcting time-of-flight drift in a mass spectrometer by identifying mass spectral peaks of ions in spectra, detecting ions having substantially the same mass across spectra, determining a time-of-flight drift of the detected ions, and correcting the time-of-flight drift of the detected ions by applying a correction factor to each respective time-of-flight. <CIT>) discloses chromatograph and a method of acquiring and displaying a real-time chromatogram using time-stamped asynchronous messaging are provided. The method includes generating a chromatogram of a sample, acquiring segments of data points of the chromatogram in real-time, annotating in real-time the segments of data points of the chromatogram with timing stamps of cycle events of an analysis cycle using time-stamped event messages, receiving the time-stamped event messages asynchronously and displaying each cycle event of the cycle events of the analysis cycle and each segment of the segments of data points of the chromatogram in a display module as being received.

The claimed invention provides a system according to independent claim <NUM>.

The claimed invention provides a method according to independent claim <NUM>.

The claimed invention provides a non-transitory computer readable medium storing executable instructions according to independent claim <NUM>. In accordance with various aspects of the described embodiments is a system that may include at least one analytical instrument, at least one first computing device connected to or comprised in the at least one analytical instrument, a data acquisition system programmatically interfaced with the at least first computing device, and at least one second computing device programmatically interfaced with the data acquisition system. The at least first computing device may include at least one memory and logic coupled to the at least one memory. The logic may be configured to receive data from the at least one analytical instrument, perform processing or analysis on the received data, determine one or more peaks based on the processing or the analysis of the received data, and generate, in real-time or substantially real-time, peak detection data based on the detected one or more peaks. The logic may be a graphics processing unit (GPU). In some embodiments, the peak detection data includes one or more peak lists. Moreover, the logic may be configured to provide or make accessible the peak detection data to one or more plug-in modules, where the one or more plug-in modules are programmatically integrated into the data acquisition system.

In accordance with various aspects of the described embodiments is a method that may include, at an instrument level, receiving data from at least one analytical instrument, performing processing or analysis on the received data, determining, via one or more graphics processing units (GPUs), one or more peaks based on the processing or the analysis of the received data, and generating, in real-time or substantially real-time, peak detection data based on the detected one or more peaks. Peak detection data may then be processed at an application level in real-time or substantially real-time with application specific filters (e.g., isotope patterns, mass sufficiency).

In accordance with various aspects of the described embodiments is a computer readable medium storing executable instructions, the executable instructions when executed by one or more processors causes the one or more processors to receive data from the at least one analytical instrument, perform processing or analysis on the received data, determine, via the one or more processors, one or more peaks based on the processing or the analysis of the received data, and generate, in real-time or substantially real-time, peak detection data based on the detected one or more peaks. In some embodiments, the one or more processors include a central processing unit (CPU) and/or a graphics processing unit (GPU).

Various arrangements, not independently claimed, may generally be directed toward real-time or substantially real-time peak detection in a data acquisition system. The data acquisition system may be coupled or connected to and/or programmatically interfaced with an analytical instrument or system, e.g., a mass analysis system. For example, one or more plug-in modules, e.g., an application programming interface (API), may be incorporated in the data acquisition system. In embodiments, the module may receive raw continuum data (which may be streaming in the data acquisition system), perform processing on the data, and output the processing results in a usable format, all of which may be performed in real-time or substantially real-time. The term "real-time or substantially real-time" for instance, may refer to the processing being performed in the data acquisition system prior to the data being sent to a database, or may refer to any time that is current, instantaneous, immediate, or the like, or may refer to where processing and output keep up with data acquisition rate(s), or where the throughput of a system is functionally sufficient, and/or may refer to one or more processes that are performed on-the-fly. Moreover, it may be understood that the term "peak detection" may be broad and include any suitable form of peak detection, peak determination, peak calculation, peak generation, and/or the like.

In examples, the real-time or substantially real-time processing of the raw data may include peak detection and other various processes associated with peak determination according to some embodiments including, without limitation, auto-thresholding, on-the-fly determination of chromatographic peak width, noise reduction, etc. In further examples, the output of the processing results may be configured as one or more blocks of data, one or more records of data, etc. corresponding to the performed processing. For instance, the output may include one or more lists of all of the detected peaks. Moreover, the output data may be centroided and corrected for lock mass, instrumental calibration, instrumental noise, drift, saturation, ringing, and/or the like. In certain embodiments, for example if a lock-mass correction must be interpolated to achieve sufficient accuracy, some latency may be introduced until the next lock-mass scan has been acquired and processed. In these instances, the corrected data could be provided in near real-time or could constitute a separate stream of data to one or more databases, such as database(s) <NUM> (as will be further described below) and/or peak list, such as peak list <NUM> (as will be further described below).

By implementing one or more modules, which may be hard coded or a plug-in extension, in the data acquisition system, the instrument-related processing may effectively be moved from the post-acquisition processing end (e.g., processing performed after all mass analysis related data has been streamed and stored), as described above, and pushed "into the instrument" itself, thereby allowing a user to access the results of the processing in real-time or substantially real-time via the one or more modules. Thus, the user may be able to instantaneously (or near instantaneously) obtain peak detection data, and for example, adjust the instrument on-the-fly based on, among other things, the peak detection results. Such results may then be processed by the user, e.g., on a coupled computing device configured to apply application-specific filters to the peak detection results (e.g., filtering based on an isotope model, applying a mass sufficiency filter). In examples, the computing device may also be configured to filter noise from the data and/or correct for instrument non-idealities, e.g., ringing, saturation, etc..

The embodiments and/or examples described herein may provide for technological advantages over conventional systems. In conventional systems, the real-time or substantially real-time processing of the streamed data, particularly instrument-related processing, was not possible or at least extremely difficult. Data has to be streamed and stored prior to any processing thereof, as described above. In one non-limiting example of a technological improvement, arrangements, which are not independently claimed, provide for real-time or substantially real-time peak detection, auto-thresholding, on-the-fly determination of chromatographic peak width, noise reduction, etc. by way of one or more modules incorporated in the data acquisition system. Real-time or substantially real-time peak detection, for example, increases the overall performance of the mass analysis system and the testing of samples since the analytical system and related instruments can be adjusted on the fly based on the peak detection results. In another non-limiting example of a technological improvement, embodiments provide for significant data reduction. For example, reducing the output data to one or more peak lists could result in the reduction of storage requirement by multiple orders of magnitude, as opposed to storing copious amounts of raw continuum data in one or more databases and/or file systems, and performing processing or analysis thereafter. In yet another non-limiting example of a technological improvement, embodiments provide for the uniformity of at least the instrument-related processing. For example, the same peak list and its corresponding properties generated by the one or more modules may be used by all of the applications performing further processing or analysis on the peak list(s), thereby providing continuity, consistency, and uniformity in the post-peak-list processing.

In this description, numerous specific details, such as component and system configurations, may be set forth in order to provide a more thorough understanding of the described embodiments. It will be appreciated, however, by one skilled in the art, that the described embodiments may be practiced without such specific details. Additionally, some well-known structures, elements, and other features have not been shown in detail, to avoid unnecessarily obscuring the described embodiments.

In the following description, references to "one embodiment," "an embodiment," "example embodiment," "various embodiments," etc., indicate that the embodiment(s) of the technology so described may include particular features, structures, or characteristics, but more than one embodiment may and not every embodiment necessarily does include the particular features, structures, or characteristics. Further, some embodiments may have some, all, or none of the features described for other embodiments.

As used in this description and the claims and unless otherwise specified, the use of the ordinal adjectives "first," "second," "third," etc. to describe an element merely indicate that a particular instance of an element or different instances of like elements are being referred to, and is not intended to imply that the elements so described must be in a particular sequence, either temporally, spatially, in ranking, or in any other manner.

<FIG> illustrates an example of an operating environment <NUM> that may be representative of some embodiments. As shown in <FIG>, operating environment <NUM> may include an analysis system <NUM> operative to manage analytical information associated with analytical device (or devices)115a-n. In some embodiments, analytical device 115a-n may be or may include a chromatography system, a liquid chromatography (LC) system, a gas chromatography (GC) system, a mass analyzer system, a mass detector system, a mass spectrometer (MS) system, an ion mobility spectrometer (IMS) system, a high-performance liquid chromatography (HPLC) system, a ultra-performance liquid chromatography (UPLC®) system, a ultra-high performance liquid chromatography (UHPLC) system, an ultraviolet (UV) detector, a visible light detector, a solid-phase extraction system, a sample preparation system, a capillary electrophoresis instrument, combinations thereof, components thereof, variations thereof, and/or the like. Although LC, MS, and LC-MS are used in examples in this detailed description, embodiments are not so limited, as other analytical instruments capable of operating according to some embodiments are contemplated herein.

In some embodiments, analytical device 115a-n may operate to perform an analysis and generate analytical information <NUM>. In various embodiments, analytical information <NUM> may include information, data, files, charts, graphs, images, and/or the like generated by an analytical instrument as a result of performing an analysis method. For example, for an LC-MS system, analytical device 115a-n may separate a sample and perform mass analysis on the separated sample according to a specified method to generate analytical information <NUM> that may include raw or unprocessed data, chromatograms, spectra, peak lists, mass values, retention time values, concentration values, compound identification information, and/or the like. In various embodiments, analytical information <NUM> may include information resulting from a performance assessment process, such as a system suitability test.

In various embodiments, analysis system <NUM> may include computing device <NUM> communicatively coupled to analytical device 115a-n or otherwise configured to receive and store analytical information <NUM> associated with analytical device <NUM>. For example, analytical device 115a-n may operate to provide analytical information <NUM> directly to computing device <NUM> and/or to a location on a network <NUM> (for instance, a cloud computing environment) accessible to computing device <NUM>. In some embodiments, computing device <NUM> may be operative to control, monitor, manage, or otherwise process various operational functions of analytical device 115a-n. In some embodiments, computing device <NUM> may be operative to provide analytical information <NUM> to a location on a network <NUM> through a secure or authenticated connection. In some embodiments, computing device <NUM> may be or may include a stand-alone computing device, such as a personal computer (PC), server, tablet computing device, cloud computing device, and/or the like. In various embodiments, computing device <NUM> may be or may include a controller or control system integrated into analytical device 115a-n to control operational aspects thereof.

As shown in <FIG>, computing device <NUM> may include processing circuitry <NUM>, a memory unit <NUM>, and a transceiver <NUM>. Processing circuitry <NUM> may be communicatively coupled to memory unit <NUM> and/or transceiver <NUM>.

Processing circuitry <NUM> may include and/or may access various logic for performing processes according to some embodiments. For instance, processing circuitry <NUM> may include and/or may access analytical services logic <NUM>, peak determination logic <NUM>, and/or additional logic <NUM>. Processing circuitry and/or analytical services logic <NUM>, peak determination logic <NUM>, and/or additional logic <NUM> (e.g., additional and/or alternative logic associated with various aspects of peak determination including, without limitation, auto-thresholding, on-the-fly determination of chromatographic peak width, noise reduction, etc.), or portions thereof, may be implemented in hardware, software, or a combination thereof. As used in this application, the terms "logic, "component," "layer," "system," "circuitry," "decoder," "encoder," and/or "module" are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution, examples of which are provided by the exemplary computing architecture <NUM>. For example, a logic, circuitry, or a layer may be and/or may include, but are not limited to, a process running on a processor, a processor, a hard disk drive, multiple storage drives (of optical and/or magnetic storage medium), an object, an executable, a thread of execution, a program, a computer, hardware circuitry, integrated circuits, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), a system-on-a-chip (SoC), memory units, logic gates, registers, semiconductor device, chips, microchips, chip sets, software components, programs, applications, firmware, software modules, computer code, combinations of any of the foregoing, and/or the like.

Although analytical services logic <NUM> is depicted in <FIG> as being within processing circuitry <NUM>, embodiments are not so limited. In addition, although peak determination logic <NUM> and additional logic <NUM> are depicted as being a logic of analytical services logic <NUM>, embodiments are not so limited, as peak determination logic <NUM> and additional logic <NUM> may be separate logics and/or may not be standalone logics but, rather, a part of analytical services logic <NUM>. For example, analytical services logic <NUM>, and/or any component thereof, may be located within an accelerator, a processor core, an interface, an individual processor die, implemented entirely as a software application (for instance, analytical services application <NUM>) and/or the like.

Memory unit <NUM> may include various types of computer-readable storage media and/or systems in the form of one or more higher speed memory units, such as read-only memory (ROM), random-access memory (RAM), dynamic RAM (DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, polymer memory such as ferroelectric polymer memory, ovonic memory, phase change or ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, magnetic or optical cards, an array of devices such as Redundant Array of Independent Disks (RAID) drives, solid state memory devices (e.g., USB memory, solid state drives (SSD) and any other type of storage media suitable for storing information. In addition, memory unit <NUM> may include various types of computer-readable storage media in the form of one or more lower speed memory units, including an internal (or external) hard disk drive (HDD), a magnetic floppy disk drive (FDD), and an optical disk drive to read from or write to a removable optical disk (e.g., a CD-ROM or DVD), a solid state drive (SSD), and/or the like.

Memory unit <NUM> may store an analytical services application <NUM> that may operate, alone or in combination with analytical services logic <NUM>, to perform various analytical functions according to some embodiments. In various embodiments, analytical services application <NUM> may interact with analytical devices 115a-n and/or components thereof through various drivers (which may include application programming interfaces (APIs) and/or the like), software and/or hardware interfaces, and/or the like. In various embodiments, peak determination logic <NUM> may operate to determine or detect peaks in real-time or substantially real-time that may be executed via the analytical device 115a-n, which may be a mass analysis system. As will be further described below, the peak determination logic <NUM> may include, be coupled to, or otherwise associated with one or more processing devices, including, without limitation, graphics processing units (GPUs). In exemplary embodiments, any information (data, instructions, code, etc.) related to peak determination may be stored as peak-related information <NUM>. In some embodiments, peak determination logic <NUM> may be or may include an editor application operative to allow a user and/or analytical services application <NUM> to perform peak determination. In various embodiments, peak-related information <NUM> may include, without limitation, peak detections, peak lists, data related to peak properties, chromatograms, spectra, charts, graphs, etc., as will be further described below.

In various embodiments, additional logic <NUM> may operate to perform various processes associated with peak determination according to some embodiments including, without limitation, auto-thresholding, on-the-fly determination of chromatographic peak width, noise reduction, etc. via the analytical device 115a-n. For example, additional logic <NUM> may receive additional information <NUM> (e.g., information associated with auto-thresholding, on-the-fly determination of chromatographic peak width, noise reduction, etc.), which may include, for example, mass, drift time, retention time, retention time slices or scans, m/z values, and other values related to auto-thresholding, on-the-fly determination of chromatographic peak width, noise reduction, and/or the like.

<FIG> illustrates an example of an operating environment <NUM> that may be representative of some embodiments. As shown in <FIG>, operating environment <NUM> may include an analytical exchange platform (or an analytical instrument platform) <NUM>. In some embodiments, analytical exchange platform <NUM> may be operative to provide for the exchange of analytical information among interested entities. In various embodiments, analytical exchange platform <NUM>. In exemplary embodiments, analytical exchange platform <NUM> may be or may include a software platform, suite, set of protocols, and/or the like provided to customers by a manufacturer and/or developer associated with an analytical instrument. A non-limiting example of a developer may be the Waters Corporation of Milford, Massachusetts, United States of America. For example, a developer may provide analytical exchange platform <NUM> as a data exchange interface for an LC, MS, LC-MS, and/or the like analytical instrument provided to an entity by the developer.

In exemplary embodiments, operating environment <NUM> may include a computing device <NUM> operative to display user interface <NUM> (for instance, executed via an analytical services application <NUM>. In some embodiments, user interface <NUM> may include a browser application, graphical user interfaces (GUIs), web interfaces, a mobile application ("mobile applications," "mobile apps," or "apps"), and/or the like. Embodiments are not limited in this context. In various embodiments, a user may interact with analytical exchange platform <NUM> and/or components thereof via user interface <NUM>.

Authentication <NUM> to analytical exchange platform <NUM> may be implemented via an authentication device <NUM>. In some embodiments, authentication device <NUM> may be or may include an identity provider in the form of a third-party entity or computing device implementing authentication services. User interface services <NUM> may be provided via a user interface web server <NUM>. For example, some or all of the information, objects, and/or the like presented via user interface <NUM> may be provided via user interface web server <NUM>. In various embodiments, user interface web server <NUM> may be the user's entry point and interface into the analytical exchange platform <NUM>.

In various embodiments, business logic services <NUM> may be provided to computing device <NUM> via an application server <NUM>. In general, business logic services <NUM> may include database access and services, workflow services, and/or the like. In various embodiments, analytical services application <NUM> may be executed by application server <NUM>. For example, a server version of analytical services application <NUM> may be executed by application server <NUM> and a corresponding client analytical services application <NUM> may be executed on computing device <NUM>. In some embodiments, a client application may be or may include a web application ("web app" or "app"), remote web client, thin client, and/or the like.

In some embodiments, application server <NUM> may be operably coupled to acquisition controller <NUM> to access data generated by analytical device <NUM>. In various embodiments, acquisition controller <NUM> may operate to send information, events, and/or the like to user interface <NUM> (for instance, via application server <NUM>) for real-time or substantially real-time monitoring and status updates. In various embodiments, acquisition controller <NUM> may operate to manage the acquisition of data by analytical device <NUM> (for instance, via an analytical services application). Embodiments are not limited in this context.

In various embodiments, user interface <NUM> may provide for certain functionality to implement the methodologies of the analytical services application <NUM>. For example, from user interface <NUM> a user may be notified when data is invalid. In various embodiments, the user interface <NUM> may provide real-time or substantially real-time peak data or other related data, such as data related to various processes associated with peak determination according to some embodiments including, without limitation, auto-thresholding, on-the-fly determination of chromatographic peak width, noise reduction, etc. In examples, the user interface may allow the user to interact with analytical device <NUM> and/or the like to modify, delete, add, save, simulate, etc. variables, information, data, and/or the like.

<FIG> illustrates an example analytical device <NUM> (which may otherwise be referred to as an analytical instrument) that may be representative of some embodiments. The analytical device <NUM> may be a mass analysis system, such as an LC-MS system. It may be understood that while the analytical device <NUM> is an LC-MS system, it may not be limited thereto and may be, for example, an atmospheric ionization MS system, which may not use LC. LC-MS analysis may be performed by automatically or manually injecting a sample <NUM> into a liquid chromatograph <NUM>. A high pressure stream of chromatographic solvent provided by pump <NUM> and injector <NUM> may force the sample <NUM> to migrate through a chromatographic column <NUM>, which may include a packed column of silica beads whose surface comprises bonded molecules. Competitive interactions between the molecular species in the sample, the solvent and the beads may determine the migration velocity of each molecular species.

A molecular species migrates through column <NUM> and emerges, or elutes, from column <NUM> at a characteristic time. This characteristic time may be referred to as the retention time of the molecule. Once the molecule elutes from column <NUM>, it can be conveyed to a detector, such as MS <NUM>.

In the LC-MS system, the chromatographic eluent is introduced into the MS <NUM> for analysis, as shown in <FIG>. MS <NUM> includes a desolvation system <NUM>, an ionizer <NUM>, a mass analyzer <NUM>, and a detector <NUM>. A computer <NUM> or any other suitable computing device may be connected or coupled to the detector <NUM>. When the sample is introduced into MS <NUM>, the desolvation system <NUM> removes the solvent. The ionizer <NUM> then ionizes the analyte molecules. Ionization methods to ionize molecules may include electron-impact (EI), electrospray (ES), atmospheric chemical ionization (APCI), etc. The ionized molecules may be then conveyed to mass analyzer <NUM>, which may sort or filter the molecules by their mass-to-charge ratio. Mass analyzers, such as mass analyzer <NUM> used to analyze ionized molecules in MS <NUM>, may include quadrupole mass analyzers (Q), time-of-flight (TOF) mass analyzers, Fourier-transform-based mass spectrometers (FTMS), and/or the like.

Mass analyzers may be placed in tandem in a variety of configurations, including, e.g., quadrupole time-of-flight (Q-TOF) mass analyzers. A tandem configuration enables on-line collision modification and analysis of an already mass-analyzed molecule. For example, in triple quadrupole based massed analyzers (e.g., Q1-Q2-Q3 or Q1-Q2-TOF mass analyzers), the second quadrupole (Q2), imports accelerating voltages to the ions separated by the first quadrupole (Q1). These ions, collide with a gas expressly introduced into Q2. The ions fragment as a result of these collisions. Those fragments are further analyzed by the third quadrupole (Q3) or by the TOF. Embodiments and/or examples described herein may be applicable to spectra and chromatograms obtained from any mode of mass-analysis such as those described above.

Molecules at each value for m/z are then detected with detector <NUM>. For example, ion detection devices include current measuring electrometers and single ion counting multichannel plates (MCPs). The signal from an MCP may be analyzed by a discriminator followed by a time-to-digital converter (TDC) or by an analog-to-digital converter (ADC). As a result, for instance, detector response may be represented by a specific number of counts, which may be proportional to the intensity of ions detected at each mass-to-charge-ratio interval.

Accordingly, the analytical device <NUM> outputs a series of spectra or scans collected over time. A mass-to-charge spectrum may be intensity plotted as a function of m/z. Each element, a single (or range of) mass-to-charge ratio, of a spectrum is referred to as a channel. Viewing a single channel over time provides a chromatogram for the corresponding mass-to-charge ratio. The generated mass-to-charge spectra or scans may be acquired and recorded at least by computer <NUM> and stored in a storage medium or memory accessible to the computer <NUM>. In examples, a spectrum or chromatogram is recorded as an array of values and stored by computer system <NUM>. The array may be displayed and processed, e.g., mathematically analyzed.

It may be understood that the analytical device <NUM>, e.g., LC-MS system, and the components thereof are not limited to what is illustrated in <FIG>. The analytical device <NUM> may include various other components that perform numerous LC-MS-related function, processing, analyses, and the like. Moreover, it may be understood that the analytical device <NUM> may be configured to perform other suitable types of analyses and perform various other types of processing in addition to LC-MS.

In embodiments, after chromatographic separation and ion detection and recordation, the data may be analyzed using a post-separation data analysis system (DAS). For example, the DAS may perform analysis in real-time or substantially real-time or near real-time or substantially real-time. The DAS may be implemented by computer software executing on a computer such as computer <NUM>. The DAS may be configured to perform a number of tasks, including providing visual displays of the spectra and/or chromatograms as well as providing tools for performing mathematical analysis on the data. The analyses provided by the DAS include analyzing the results obtained from a single injection and/or the results obtained from a set of injections to be viewed and further analyzed. Examples of processing or analyses applied to a sample set include the production of calibration curves for analytes of interest, and the detection of novel compounds.

<FIG> illustrates example processing components in an analytical device <NUM> that may be representative of some embodiments. The analytical device <NUM> may be an LC-MS system and be similar or identical to the analytical device <NUM> of <FIG>. Again, it may be understood that while the analytical device <NUM> is an LC-MS system, it may not be limited thereto and may be, for example, an atmospheric ionization MS system, which may not use LC.

As shown, the analytical device <NUM> includes one or more parallel processors, such as graphics processing units (GPUs) <NUM> or other types of processors (e.g., CPUs, multicore CPUs, field programmable gate arrays, etc.), and memory <NUM>. The memory <NUM> may have code stored thereon which, when executed using the GPU(s) <NUM> or other suitable types of processing unit(s), performs processing on LC-MS related data for peak detection, which may be used to generate one or more peak lists <NUM>. It may be understood that peak detection may refer to the detection of peaks in one or more dimensions, the precise measurement of their location, peak shape, asymmetry, and the volume and mapping of the measurements in useable or meaningful units, e.g., m/z, number of ions, etc. Data indicative of the results of such peak detection may be used to generate the one or more peak lists <NUM>.

By way of example, a peak may be identified by providing coordinates of the apex of the peak in terms of retention time, m/z, and/or intensity. One or more non-limiting examples of the processing to generate peak lists utilizing GPUs is described in <CIT>. For example, the GPUs may process one or more scans of LC-MS related data and may identify all peak apices in the scanned data, and based on the application of peak detection algorithms or the like, one or more peaks may be detected in real-time or substantially real-time, which may be included in a peak list, e.g., peak list <NUM>. The peak list may also include one or more measurements related to the peak shape, asymmetry thereof, etc. Such processing on analytical device <NUM> may further adjust raw data <NUM> and/or peak list data <NUM> to calibrate mass data and correct for instrument drift (e.g., by detecting ambient conditions or performance characteristics of the analytical device <NUM> and adjusting data based on known or fixed calibration data), instrument or detector saturation (e.g., by adjusting outlying mass measurements caused by too many ions being detected by the detector during a period of time, which reduces the mass measurement accuracy and precision of the analytical device <NUM>), detector ringing (e.g., by filtering out substantially symmetrical side bands of decreasing intensity that are distributed around a main peak of significant intensity), and/or dynamic range expansion effects (e.g., by removing errant peaks produced by application of the dynamic range enhancement applied to mass spectrometry ("DREAMS") approach).

In embodiments, raw data <NUM> produced during or after (as output) performing mass analysis (such as with the LC-MS system) may be analyzed in real-time or substantially real-time to generate the peak list <NUM>. The peak list <NUM> may be accessed by and/or provided to a data acquisition system <NUM>, as shown, which will be further described below. For example, a module (e.g., an API) that may be incorporated (programmatically or otherwise) in the data acquisition system <NUM> may advantageously allow a user to obtain the peak list <NUM> in real-time or substantially real-time, as the analytical device and the components therein are processing the raw mass analysis related data (scanned or otherwise) and providing it into the pipeline of the data acquisition system <NUM>. Moreover, the peak list <NUM> may be stored in database <NUM>. Additionally, other types of data, including peak list <NUM> or other peak lists, may be stored in database <NUM>. As shown, the databases <NUM> and <NUM> may be connected to and communicate with each other. It may be understood that in a real-time or substantially real-time implementation, one or more processors may combine more than one peak list as they are produced. For instance, if a single instrument produces technical replicates in triplicates, the final result may appear in real-time during the acquisition of e.g., a third injection. In another instance, if there are three instruments that are running in parallel, a composite peak list may be obtained in real-time or substantially real-time.

It may also be understood that the raw data <NUM> is not required to be stored on permanent or non-volatile storage. The raw data <NUM>, e.g., MS-LC related data, may be stored temporarily, such as in a form of memory or volatile storage, for the duration of time during which such data is needed for peak list detection and computation processing. In some examples, after such processing, the data may be discarded. Thus, the analytical device <NUM> may include computer executable instructions (e.g., code) or the like for performing peak list generation in real-time or substantially real-time that produces as a final output the peak list rather than the raw LC-MS scan data. In some examples, the raw data, however, may also be stored in storage device, databases, etc., e.g., databases <NUM>, <NUM>.

It may also be understood that both the one or more GPUs <NUM> and/or one or more CPUs may be included in the same system. For example, programmable code or executable instructions that executes in the GPU may be programmed or implemented, for example, using "CUDA" programming language designed to exploit parallel processing characteristics of the GPU. It may be understood that the one or more GPUs <NUM> may implement any type of parallel computing platform and application programming interface and may not be limited to just a CUDA implementation. The GPU may handle numerous concurrent programming threads, each running one or more elements of a parallel computation. To facilitate parallel programming, CUDA may organize these threads in blocks, and the threads blocks are organized in a grid. The threads in a thread block can be indexed in one, two, or three dimensions, and the grid can be indexed in one, two, or three dimensions. For example, the function calls that run in the GPU are called "kernels," and may be launched from the one or more CPUs. Each kernel corresponds to a portion of parallel code that may be executed by multiple threads, where such threads are organized into a number of blocks. A "grid" of thread blocks executing the same kernel code, may be run as a unit of computation on the GPU where, depending on the GPU resources, some or all threads in the grid are executed concurrently.

<FIG> illustrates one or more modules programmatically implemented in an example data acquisition system <NUM> that may be representative of some embodiments. The data acquisition system <NUM> may be similar or identical to the data acquisition system <NUM> shown in <FIG>. As illustrated, one or more analytical devices, e.g., analytical devices 504a-n, may interface with the data acquisition system <NUM>. As described above, the one or more analytical devices may be an LC-MS system. The analytical devices 504a-n may be connected to the data acquisition system <NUM>, where data (e.g., raw mass analysis related data <NUM>, peak list data <NUM>) from the analytical devices can be streamed and stored (such as in one or more databases <NUM>). Moreover, a client manager <NUM> may be connected to the data acquisition system <NUM> that may programmatically interface with the data acquisition system <NUM>. In examples, the client manager <NUM> may receive processed scan data from the data acquisition pipeline <NUM>, including peak detections.

As further shown in <FIG>, the data acquisition system <NUM> may include one or more modules, e.g., modules 506a-n (which may be hard coded, a plug-in extension, or otherwise), each of which may correspond to the analytical devices 504a-n. The modules may be APIs that allow external components or interfaces to communicate with or access various data from the one or more analytical devices 504a-n in real-time or substantially real-time, such as peak detections, peak lists, data related to peak properties, etc., as will be further described below. An external component or interface may be one or more application servers <NUM>, which allow one or more computing devices, e.g., computing devices 514a-n, to interface (programmatically or otherwise) with the one or more application servers <NUM> (and with the data acquisition system <NUM> and ultimately with the analytical devices 504a-n) via interfaces 512a-n. Thus, for example, a user may be able to receive, view, and/or interact with real-time or substantially real-time data, processing, and/or analysis, e.g., peak detection data, peak list, provided by the analytical devices 504a-n, on the user interfaces 516a-n of the computing devices 514a-n, respectively. In at least that regard, the modules 506a-n may provide real-time or substantially real-time access to instrument-related data, e.g., peak list, that may be processed and generated by the instrument and its components, e.g., GPUs. In examples, the user may have the choice as to whether real-time or substantially real-time peak detection or other real-time or substantially real-time processing is performed and how that may be done, which may be specified, for example, on the user interfaces 516a-n.

In embodiments, the modules 506a-n may be hosted by a processor plug-in in the data acquisition system <NUM> (and/or in an external computing device) and may interface with or access one or more components of the analytical device, such as the one more GPUs by way of a CUDA implementation and/or by way of any non-CUDA implementation, as described above. In arrangements which are not independently claimed, the modules 506a-n may be APIs configured or programmed to perform real-time or substantially real-time peak detection (including different modes of real-time or substantially real-time peak detections such as chromatographic and scan by scan peak detection), auto-thresholding, filtering based on an isotope model, application of a mass sufficiency filter, on-the-fly determination of chromatographic peak width, noise reduction, etc., all of which can be output as a new "raw" data file format where the data is centroided, corrected for at least lock mass, calibration, instrumental noise, saturation, and/or ringing. The data file size of this new data file format may be reduced in size on multiple orders of magnitude compared to the streamed data (which may flow from the analytical devices 504a-n to the data acquisition system <NUM>) in the data acquisition system <NUM>. Thus, in examples, the real-time or substantially real-time processing performed by the modules 506a-n is effectively moved "closer" to the instrument or the analytical device(s) 504a-n in instrument level <NUM>, while still being part of or kept "inside" the application level <NUM>. In other examples, the real-time or substantially real-time processing performed by the modules 506a-n, may be instead performed by analytical devices 504a-n, and thus, effectively moved "into" the instrument level <NUM>.

It may be understood that chromatographic peak detection may refer to the inclusion of chromatographic dimension in the peak detection, which may be two-dimensional (e.g., mass and retention time) where no mobility data is present, or may be three-dimensional (e.g., mass, drift time, and retention time) where mobility data is present. Moreover, it may be understood that scan by scan peak detection may refer to a process in which each retention time slice or scan is processed independently of the other slices or scans, which may be a one dimensional peak, e.g., detection of a mass spectral peak, or may be two-dimensional, e.g., detection of peaks in both m/z and drift time. Such scan by scan peak detection data may then be followed by a post-processing step to produce chromatographic peak detection peak list(s) <NUM>.

According to further arrangements, not independently claimed, there may be various parameters associated with performing real-time or substantially real-time peak detection (or post-processing thereof) by the one or more modules. For example, the modules 506a-n may survey the entirety of the acquired mass analysis related data to identify suitable peak widths in setting appropriate convolution filter coefficients. These parameters may be supplied or determined on the fly. Moreover, in the data acquisition system <NUM>, for example, mass spectral and drift peak widths may be measured during calibration and so may be available to the modules 506a-n to process, along with the detector average single ion response, which may be used to estimate noise levels. In further examples, the peak detection threshold may be provided by the user.

According to further embodiments, the data acquisition system <NUM> or application server(s) <NUM> may include encoder <NUM>, which gathers correction information used by analytical device(s) 504a-n to perform instrument-related or analytical-device-related processing, such as instrument calibrations, lock-mass information, and/or peak detections. In these instances, encoder <NUM> may be coupled (programmatically or otherwise) to one or more decoder(s) 520a-n, which is/are operatively coupled with one or more analytical devices 504a-n. Correction information provided from encoder <NUM> to decoder(s) 520a-n may then be applied to the instrument-level processing on the one or more analytical devices <NUM> to, e.g., correct for instrument drift, instrument saturation, detector ringing, and/or DRE effects. Providing correction information from the application-level processing may reduce redundancy and improve economy in terms of data storage.

The following settings or parameters in the below table, Table <NUM>, may be used by the modules 506a-n, in arrangements which are not independently claimed, to perform the real-time or substantially real-time peak detections or any post-processing steps. It may be understood that the parameters or settings recited in the following Table <NUM> is an example and are not limited thereto.

As described above, the output of the real-time or substantially real-time peak detection by the one or more modules 506a-n may be a peak list, which may be saved to a specific local memory, such as the local memory of the analytical device, in arrangements which are not independently claimed. In examples, the m/z values in the peak list may be lock-mass corrected. In further examples, the output may be written as Protocol Buffers messages with each isolated message pre-pended by its size in bytes. One stream may be written for reach peak detected function (including the lock-mass function) along with an additional stream for mass calibration and processed lock-mass information. The streams may be written in binary files, which can be read and decoded by a separate application (e.g., a decoder interface of a codec) that can apply MS calibration and lock-mass correction along with any drift time adjustments. Thus, according to embodiments, the decoder interface of the codec may define the requests the separate application can make on the processed MS data, such as the peak list, and this may determine the information that must be provided to the encoder interface of the codec so that the encoder can write the metadata or code to perform such requests.

One of the many benefits and advantages of the output of the real-time or substantially real-time peak detection process, e.g., peak list, is that the data size of the output (or format thereof) may be significantly reduced. Thus, raw continuum data in the data acquisition system does not have to be inspected, stored, or processed, in its entirety, to acquire the peak list. Moreover, the availability of pre-prepared peak lists may significantly reduce processing burdens or other types of burdens on the application server(s) <NUM>, databases <NUM>, <NUM>, and at least the network shown in <FIG>. Thus, in examples, the one or more application servers <NUM> may handle only post-peak-detection processing.

Yet another advantage of the module configuration, for instance, is the uniformity of processing. By way of example, any processing performed by the application server(s) <NUM> or any of the computing devices 514a-n on a peak list provided by analytical device 504a (via module 506a) is going to be on that same peak list. Thus, at least the peak data in the peak list will be consistently applied throughout. Moreover, a further advantage is that performance of the overall testing process is increased. By way of another example, not independently claimed, real-time or substantially real-time peak detection and peak list generation from analytical device 504a (via module 506a) allows a user operating from, for example, computing device 514a to make adjustments to the analytical device 504a on the fly, as opposed to waiting a long duration of time for post-acquisition processing to complete in the data acquisition system to obtain a peak list or peak detection data, which may render the adjustment of the analytical device 504a untimely or moot.

It may be understood that the functionality described for application level <NUM> may take place on one or more physically separate devices. For example, the functionality described for data acquisition system <NUM> may be performed on a personal computer (PC), server, tablet computing device, cloud computing device, and/or the like, while the functionality described for application server(s) <NUM> may be performed on similar but separate devices operatively connected to data acquisition system <NUM>. Likewise, the functionality described for computing device(s) 514a-n may similarly be performed on similar but separate devices operatively connected to application server(s) <NUM>.

Included herein are one or more logic flows representative of exemplary methodologies for performing novel aspects of the disclosed embodiments. While, for purposes of simplicity of explanation, the one or more methodologies shown herein are shown and described as a series of acts, those skilled in the art will understand and appreciate that the methodologies are not limited by the order of acts. Some acts, steps, and/or the like may, in accordance therewith, occur in a different order and/or concurrently with other acts from that shown and described herein. In addition, certain acts, steps, and/or the like may be excluded. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all acts illustrated in a methodology may be required for a novel implementation.

A logic flow may be implemented in software, firmware, hardware, or any combination thereof. In software and firmware embodiments, a logic flow may be implemented by computer executable instructions stored on a non-transitory computer readable medium or machine readable medium, such as an optical, magnetic or semiconductor storage.

<FIG> illustrates an embodiment of a logic flow <NUM>. Logic flow <NUM> may be representative of some or all of the operations executed by one or more embodiments described herein, such as computing device. In some embodiments, logic flow <NUM> may be representative of some or all of the operations of a method generation process. Moreover, it may be understood that the blocks illustrated in the logic flow <NUM> do not have to be performed in any specific order.

At block <NUM>, data from at least one analytical device or instrument may be received. As described above, the analytical device or instrument may be an MS system or an LC-MS system. The data may be raw continuum data produced as a result of the MS or LC-MS related processing or analysis performed on a sample.

At block <NUM>, processing or analysis may be performed on the raw continuum data. For example, the processing or analysis may include peak detection and various other processes associated with peak determination according to some embodiments including, without limitation, auto-thresholding, on-the-fly determination of chromatographic peak width, noise reduction, etc., and/or any other suitable MS or LC-MS related types of processing or analysis.

At block <NUM>, one or more peaks may be determined based on the processing or analysis performed at block <NUM>. As described above, the one or more peaks may be determined by one or more GPUs. The determination, for example, may be based on one or more peak detection algorithms and one or more variables or parameters either automatically determined or input by a user, such as peak threshold values and the like.

At block <NUM>, once the one or more peaks are determined, peak detection data may be generated and provided in real-time or substantially real-time. In examples, the peak detection data may include one or more peak lists. The peak detection data may be output and made accessible to external components (hardware, software, or otherwise), such as one or more modules (e.g., APIs) that may be programmatically implemented in a data acquisition system. As described above, in examples, the one or more modules may be hosted by the CPUs and/or GPUs of the analytical devices or instruments. The size of the output data may be significantly reduced compared to the size of the raw continuum data at block <NUM>. Moreover, the peak detection data may be centroided and/or corrected for lock mass, calibration, instrumental noise, saturation, drift, and/or ringing.

<FIG> illustrates an embodiment of an exemplary computing architecture <NUM> suitable for implementing various embodiments as previously described. In various embodiments, the computing architecture <NUM> may comprise or be implemented as part of an electronic device. In some embodiments, the computing architecture <NUM> may at least partially be representative, for example, of computing devices <NUM>, <NUM>, 514a-n, computer <NUM>, analytical devices 115j-n, <NUM>, 504a-n, or any other device or component capable of storing or processing data discussed herein.

As used in this application, the terms "system" and "component" and "module" are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution, examples of which are provided by the exemplary computing architecture <NUM>. For example, a component can be, but is not limited to being, a process running on a processor, a processor, a hard disk drive, multiple storage drives (of optical and/or magnetic storage medium), an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers. Further, components may be communicatively coupled to each other by various types of communications media to coordinate operations. The coordination may involve the uni-directional or bi-directional exchange of information. For instance, the components may communicate information in the form of signals communicated over the communications media. The information can be implemented as signals allocated to various signal lines. In such allocations, each message is a signal. Further embodiments, however, may alternatively employ data messages. Such data messages may be sent across various connections. Exemplary connections include parallel interfaces, serial interfaces, and bus interfaces.

As shown in <FIG>, the computing architecture <NUM> comprises a processing unit <NUM>, a system memory <NUM> and a system bus <NUM>. The processing unit <NUM> can be any of various commercially available processors, including without limitation an AMD® Athlon®, Duron® and Opteron® processors; ARM® application, embedded and secure processors; IBM® and Motorola® DragonBall® and PowerPC® processors; IBM and Sony® Cell processors; Intel® Celeron®, Core (<NUM>) Duo®, Itanium®, Pentium®, Xeon®, and XScale® processors; and similar processors. Dual microprocessors, multi-core processors, and other multi-processor architectures may also be employed as the processing unit <NUM>.

The computer <NUM> may include various types of computer-readable storage media in the form of one or more lower speed memory units, including an internal (or external) hard disk drive (HDD) <NUM>, a magnetic floppy disk drive (FDD) <NUM> to read from or write to a removable magnetic disk <NUM>, and an optical disk drive <NUM> to read from or write to a removable optical disk <NUM> (e.g., a CD-ROM or DVD). The HDD <NUM>, FDD <NUM> and optical disk drive <NUM> can be connected to the system bus <NUM> by an HDD interface <NUM>, an FDD interface <NUM> and an optical drive interface <NUM>, respectively. The HDD interface <NUM> for external drive implementations can include at least one or both of Universal Serial Bus (USB) and IEEE <NUM> interface technologies.

The drives and associated computer-readable media provide volatile and/or nonvolatile storage of data, data structures, computer-executable instructions, and so forth. For example, a number of program modules can be stored in the drives and memory units <NUM>, <NUM>, including an operating system <NUM>, one or more application programs <NUM>, other program modules <NUM>, and program data <NUM>.

A user can enter commands and information into the computer <NUM> through one or more wire/wireless input devices, for example, a keyboard <NUM> and a pointing device, such as a mouse <NUM>. Other input devices may include microphones, infra-red (IR) remote controls, radio-frequency (RF) remote controls, game pads, stylus pens, card readers, dongles, finger print readers, gloves, graphics tablets, joysticks, keyboards, retina readers, touch screens (e.g., capacitive, resistive, etc.), trackballs, trackpads, sensors, styluses, and the like. These and other input devices are often connected to the processing unit <NUM> through an input device interface <NUM> that is coupled to the system bus <NUM>, but can be connected by other interfaces such as a parallel port, IEEE <NUM> serial port, a game port, a USB port, an IR interface, and so forth.

When used in a WAN networking environment, the computer <NUM> can include a modem <NUM>, or is connected to a communications server on the WAN <NUM>, or has other means for establishing communications over the WAN <NUM>, such as by way of the Internet. The modem <NUM>, which can be internal or external and a wire and/or wireless device, connects to the system bus <NUM> via the input device interface <NUM>. In a networked environment, program modules depicted relative to the computer <NUM>, or portions thereof, can be stored in the remote memory/storage device <NUM>. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers can be used.

The computer <NUM> is operable to communicate with wire and wireless devices or entities using the IEEE <NUM> family of standards, such as wireless devices operatively disposed in wireless communication (e.g., IEEE <NUM> over-the-air modulation techniques). This includes at least Wi-Fi (or Wireless Fidelity), WiMax, and Bluetooth™ wireless technologies, among others. Thus, the communication can be a predefined structure as with a conventional network or simply an ad hoc communication between at least two devices. Wi-Fi networks use radio technologies called IEEE <NUM>. 11x (a, b, g, n, etc.) to provide secure, reliable, fast wireless connectivity. A Wi-Fi network can be used to connect computers to each other, to the Internet, and to wire networks (which use IEEE <NUM>-related media and functions).

Claim 1:
A system, comprising:
at least one analytical instrument;
at least one first computing device (504a-n) connected to or comprised in the at least one analytical instrument; and
a data acquisition system (<NUM>, <NUM>) programmatically interfaced with the at least first computing device;
wherein the at least one first computing device comprises:
at least one memory (<NUM>); and
logic coupled to the at least one memory, the logic to:
receive data from the at least one analytical instrument;
perform processing or analysis on the received data;
determine one or more peaks based on the processing or the analysis of the received data; and
generate, in real-time, peak detection data based on the detected one or more peaks, the logic to provide or make accessible the peak detection data to one or more modules (506a-n), characterised in that the one or more modules are
programmatically integrated into the data acquisition system and are application programming interface, API, modules
that allow external components or interfaces to communicate with or access data from the at least one first computing device (504a-n) in real-time and provide the peak detection data from the first computing device (504a-n) to an external component or
interface to enable a user to receive, view, and/or interact with real-time data, processing, and/or analysis.