The present invention relates generally to the field of analysis device operational methods and analysis device programming methods.
Mass spectrometry is capable of providing qualitative and quantitative information about a composition of both inorganic and organic samples. Mass spectrometry may be used to determine the structures and identities of a wide variety of complex molecular species. Mass spectrometers have been utilized to provide high-speed analysis of complex mixtures enhancing capacity for structure determination. High-capacity and high-speed analysis are two important factors in analytical instrumentation.
U.S. Pat. No. 5,015,848 to Bomse, et al. describes methods and apparatus for utilizing analog or digital data acquisition and processing, and the teachings of which are hereby incorporated by reference. U.S. Pat. No. 6,253,162 to Jarman, et al. describes a method of identifying features in indexed analytical data for distinguishing a signal from noise and the teachings of which are hereby incorporated by reference. U.S. Pat. No. 6,487,523 to Jarman, et al. describes a method and apparatus for characterizing the presence of peaks in an indexed dataset for samples that match a reference species and the teachings of which are hereby incorporated by reference.
A number of different end users may access a given analysis tool to perform analysis operations. The end users may have different levels of experience with instrument usage and/or familiarity with programming the instrument. Further, the aim of one group of users may differ from another group of users. For example, chemists and non-technical users may focus on chemical analysis and not intricate details of mass spectrometry. However, some instruments have provided relatively inflexible user interface designs which may be overly complicated for novice users, or overly simplistic for sophisticated users.
Aspects of this disclosure provide analysis device operational methods and analysis device programming methods.
Aspects of the disclosure are described below with reference to the following accompanying drawings.
Referring to
The depicted exemplary embodiment of analysis device 10 comprises processing circuitry 20, a storage device 21, one or more waveform generator 22, a user interface 23, an inlet 24, an ion/electron source 26, ion/electron optics 27, a mass analyzer 28, and an ion detector 30. Other embodiments are possible including more, less or alternate components.
Processing circuitry 20 is configured to define values of various device parameters for example of ion/electron source 26, ion/electron optics 27, mass analyzer and/or ion detector 30 (or other components which may be controlled) and may include a value which remains constant for the parameter during the analysis of a sample, or a stream of values for a device parameter providing one or more waveforms (e.g., waveforms applied to mass analyzer 28). Accordingly, the values of device parameters of components 26, 27, 28, 30 may individually comprise a value which remains constant for a respective device parameter during an analysis of a sample or a plurality of values for a given parameter during an analysis of a device sample (e.g., a waveform). Processing circuitry 20 may generate analysis control data to implement operations of device 10 with respect to analysis of a sample, for example, the analysis control data may include values of the device parameters. As described herein, the analysis control data may be generated responsive to received input data. At least some aspects present different levels of programming abstraction, for example via a user interface, to assist a user with entry of the input data used to generate the analysis control data.
According to exemplary aspects, processing circuitry 20 is configured to generate, access or otherwise provide one or more waveforms or waveform segments which may be applied to mass analyzer 28 to implement analysis operations of device 10. User input data may define waveform segments usable to control the analysis and may be provided in a given form (e.g., equation) which defines the waveform data to be used to implement analysis operations. The waveform segments may be processed to provide analysis control data which may comprise the waveform data of the segments. Thereafter, the waveform data (e.g., digitized voltage values) may be outputted to other components (e.g., generators 22) to implement analysis operations with respect to a subject sample. As discussed herein, different levels of programming abstractions may be generated to assist a user with entry of input data which is processed to provide exemplary analysis control data such as the above-described waveform data. Different input data may include voltage amplitude values, the above-described equation, values for equation parameters, or other appropriate format or content.
Processing circuitry 20 may control additional operations of analysis device 10 with respect to performing analysis operations of a sample. For example, processing circuitry 20 may control or monitor operations of components 24, 26, 27, 28, and/or 30 to analyze a sample. Additional details regarding exemplary control or implementation of analysis operations by processing circuitry 20 are described in illustrative embodiments in a co-pending PCT application entitled “Analysis Methods, Analysis Device Waveform Generation Methods, Analysis Devices, and Articles of Manufacture,” naming Garth E. Patterson, James Mitchell Wells, and Brent Rardin as inventors, filed the same day as the present application, and the teachings of which are incorporated herein.
Processing circuitry 20 may also control user interface 23 to display a programming interface and/or a configuration interface according to exemplary embodiments. As described further below, the programming interface may comprise an interface to assist a user with programming operations of device 10 (e.g., exemplary programming includes specifying values of various device parameters and may comprise a single value or plural values for waveforms to be generated). The programming interface may be provided to receive or implement programming in a plurality of levels of programming abstraction in one embodiment corresponding to the sophistication and/or experience of the user of device 10 (e.g., a user may enter different forms of input data used to create analysis control data via the different levels of programming abstraction, for example, based upon the choice of the user). As also described below, the configuration interface may be used by a user to modify the programming interfaces (e.g., add additional constructs or otherwise program) at one or more of the levels of abstraction to tailor programming capabilities of the device 10 to the needs of the user.
Processing circuitry 20 may be implemented as a processor or other structure configured to execute executable instructions including, for example, software and/or firmware instructions. Other exemplary embodiments of processing circuitry 20 include hardware logic, PGA, FPGA, ASIC, and/or other structures. These examples of processing circuitry 20 are for illustration and other configurations are possible.
Storage device 21 is configured to store electronic data and/or programming such as executable instructions (e.g., software and/or firmware), data, or other digital information and may include processor-usable media. Processor-usable media includes any article of manufacture which can contain, store, or maintain programming, data and/or digital information for use by or in connection with an instruction execution system including processing circuitry in the exemplary embodiment. For example, exemplary processor-usable media may include any one of physical media such as electronic, magnetic, optical, electromagnetic, infrared or semiconductor media. Some more specific examples of processor-usable media include, but are not limited to, a portable magnetic computer diskette, such as a floppy diskette, zip disk, hard drive, random access memory, read only memory, flash memory, cache memory, and/or other configurations capable of storing programming, data, or other digital information.
Waveform generators 22 are configured to receive the generated waveform data and to provide the respective voltage waveforms according to respective gains. The amplified voltage waveforms are outputted to mass analyzer 28 in the depicted embodiment. Waveform generators 22 may provide any digital-to-analog conversion operations using the waveform data to provide the waveforms before amplification. Other components of device 10 (e.g., components 26, 27, 28, 30) may comprise appropriate conditioning circuitry (e.g., analog to digital circuitry to convert analysis control data received from processing circuitry 20 to constant or varying digital and/or analog signals to implement analysis operations).
User interface 23 is configured to provide interaction between a user and analysis device 10. Exemplary user interfaces 23 comprise CRT or LCD displays configured to depict programming and/or configuration interfaces (e.g., using a Windows™ operating system or other suitable format or environment) for review by a user as well as input devices configured to receive input from a user (e.g., keyboard, mouse, etc.). Other configurations of user interface 23 are possible.
Inlet 24 is configured to introduce a sample for analysis. Exemplary inlets 24 comprise batch inlets, direct probe inlets, chromatographic inlets, and permeable or capillary membrane inlets. Other configurations are possible.
Ion/electron source 26 is operatively coupled with inlet 24 and arranged to receive the sample from inlet 24. Ion/electron source 26 is configured to convert components of the sample into ions and/or electrons according to exemplary device parameters including bias voltage and ionization time which may be specified by analysis control data provided by processing circuitry 20. Users may specify input data which may define the analysis control data via different levels of programming abstraction as described herein. Exemplary conversion operations may be implemented by bombarding the sample with electrons, ions, molecules, and/or photons, or by applying thermal and/or electrical energy. Other conversion operations are possible.
Ion optics 27 are configured to control the transmission of ions or electrons to mass analyzer 28. Ion optics 27 operate according to device parameters including for example DC voltage potentials (e.g., −100 VDC to −150 VDC) for ions or DC voltage potentials of different polarity which may be specified by analysis control data provided by processing circuitry 20. Users may specify input data which may define the analysis control data via different levels of programming abstraction as described herein.
Ions or electrons from ion optics 27 are provided to mass analyzer 28. Additionally, the mass analyzer 28 also receives voltage waveforms from waveform generators 22. Referring to
Other embodiments of mass analyzer 28 are possible. For example, in a three-waveform linear quadrupole mass analyzer (not shown), first and second waveforms may be applied to respective pairs of rod electrodes to guide ions through a linear quadrupole, and a third waveform may be superimposed onto one of a plurality of pairs of rod electrodes to manipulate ion motion as the ions pass through the linear quadrupole. Other waveforms and/or number of other waveforms may be used in other analysis operations.
In the described embodiments, waveforms 50, 52 comprise voltage waveforms to be applied to one or more electrodes of mass analyzer 28. Waveforms 50, 52 may comprise a sequential combination of data resulting from one or more algorithm, and may be viewed as a sequence of segments in some arrangements. Referring to
Processing circuitry 20 may provide analysis control data including values of one or more device parameter of ion detector 30 to control the operations of detector 30. For example, the processing circuitry 20 may provide a value for the parameter comprising bias voltage (e.g., specify a voltage in an exemplary range of 2000 to 2500 VDC). The value may comprise analysis control data generated responsive to input data received by a user in one embodiment. Users may specify input data which may define the analysis control data via different levels of programming abstraction as described herein.
Referring to
In one embodiment, programming level 60 may correspond to a digitized voltage waveform level and programming level 62 may correspond to a segmented scan configuration level. Digitized voltage waveform level 60 may be intended for usage by experts in mass spectrometry physics. Level 60 may provide direct access and programming of values of device parameters, such as raw digitized data used to generate or otherwise corresponding to voltage waveforms or waveform segments which are outputted by waveform generators 22 to implement analysis operations.
Level 62 may be intended for usage by experts with how mass spectrometry works but not necessarily the pertinent physics. As described below, level 62 may query a user to provide input data which may be processed by processing circuitry 20 to generate raw data (e.g., values of device parameters). The depicted levels 60, 62 are exemplary to describe the provision of different levels of programming abstraction to a user. Other (alternative and/or additional) levels of programming abstraction may be provided in other embodiments.
As illustrated in the exemplary embodiment of
The digitized waveform editor 64 operates to output or provide raw data of the digitized waveforms 66 which may be provided to waveform generators 22 for generating voltage waveforms to implement and control analysis operations of the device 10. In one embodiment, the digitized waveform 66 comprise data streams defined as floating point values representing the actual voltages, integers to be scaled based on peak voltage and scale factors, mathematical equations or other representations. The exemplary level 60 gives a user direct access to the raw data (voltage) control of the analysis device 10. Exemplary digitized waveforms 66 may comprise multiple arrays of data that define voltage amplitudes for individual analog voltages to be generated and used to control analysis device 10. For example, the waveforms 66 may comprise one or more streams of digital data values which may be converted to one or more respective analog voltage waveform used to implement mass spectrometry operations.
Programming level 62 comprises processing circuitry 20 implementing a segmented scan editor 70 in the exemplary embodiment. The segmented scan editor 70 provides a sequence of pre-defined or user defined voltage waveforms for individual controlled voltage sources of analysis device 10. A user obtains fundamental control of analysis device 10 using the segmented scan editor 70 but not at the raw data level (at least in one configuration). Segmented scan editor 70 outputs data as a segmented scan 72. Segmented scan 72 is a sequence of voltage waveforms defined by one or more equation for individual controlled voltage sources plus control of relays and registers (e.g., controlling additional operations of analysis device 10 such as turning on/off a heater or other environmental control for example). The defined voltage waveforms of segmented scan 72 comprise digitized voltage waveforms defined by equations along with values for the respective equation parameters to be used for processing at the lower level 60. Scan configuration data of individual segmented scan 72 may comprise a unique name, an equation, and/or a list of parameters corresponding to the lower level (e.g., level 60) which may be used in generating the respective digitized waveform 66.
Segmented scan 72 may be compiled by processing circuitry 20 into the lower programming level 60 and used by digitized waveform editor 64 to generate the desired digitized waveforms 66. Accordingly, as illustrated by the example of
Processing circuitry 20 may also execute appropriate programming to implement a waveform configuration tool which allows a user to add user-defined constructs to a higher programming level to supplement existing constructs and which are based upon a lower programming level. Constructs may comprise building blocks or keywords for a given programming level. An added construct permits the user to gain additional programming control of analysis device 10 at a given level of programming abstraction. In the example of
Individual levels of programming abstraction (e.g., levels 60, 62) may comprise at least four applications components including parameter variables defined by a lower level, a user interface for the current level (e.g., editor or programming interface), algorithm to create data (e.g., constructs) in terms of or understood by the lower level, and a configuration tool to define a user interface to be used by a higher level. Individual levels of programming abstraction may include at least two input data components including values for parameters of components (e.g., variable number of parameters corresponding to the construct type described as P1, P2, P3 in the below example) and values for level specific parameters which apply to constructs at the respective level (e.g., totalNumberOfSamples in the below example). Individual levels of programming abstraction may further provide at least one output component comprising generated data by application of the respective algorithm to the input data.
Referring again to
In a further example, the segmented scan programming level 62 may use the following constructs and associated parameter(s):
Fixed DC—the only parameter is the DC voltage value.
Linear Ramping DC—parameters are needed for the starting and ending DC voltages.
Sine—parameters are needed for the amplitude and frequency.
Ramping Sine—parameters are needed for the frequency and starting and ending amplitudes.
Broadband—parameters are needed for the starting and ending frequencies and amplitude.
For level 62, existing constructs may be used by the user to enter appropriate data at level 62. The entered data may be processed by segmented scan editor 70 to provide the data of segmented scan 72 which may be compiled into lower level 60. Exemplary existing constructs of level 62 for
Referring again to programming level 60, digitized waveform editor 64 generates digitized waveform 66 comprising a data stream representing voltages. In one embodiment, the data stream is generated according to an equation. The data stream for a sine wave may be generated by editor 64 according to:
for (n=0; n<totalNumberOfSamples; n++)
data[n]=sine (2*PI*n*frequency/samplesPerSecond)
wherein samplesPerSecond may be based upon hardware and totalNumbnerOfSamples may be based on duration of the waveform (in seconds) times the samplesPerSecond. Programming at level 60, the user may enter the above code changing values for frequency, totalNumberOfSamples, etc. each time they wanted to generate a new sine waveform. Alternatively, if programming at level 62, a user may access the sine wave construct, define values for the respective parameters, and processing circuitry 20 implementing editor 70 would insert the values into an equation corresponding to the sine wave construct providing segmented scan 72.
A user may access waveform configuration tool 68 if they wanted to add a new construct to segmented scan level 62 (e.g., in addition to the segment types already provided by the segmented scan editor 70) or any other level of programming abstraction. The user may add new constructs after usage of the analysis device 10. For an example of programming at the higher level 62, a user may wish to add a new construct defining a new waveform. Processing circuitry 20 executing appropriate programming to implement the configuration tool 68 may ask via a configuration editor a user to enter a name identifying the new construct (e.g., waveform type), the number of parameters, the parameter names, and an equation (e.g., corresponding to the waveform). The configuration tool defines the new construct in terms understood by the lower layer (e.g., equation having appropriate values to generate a waveform if the new construct is for level 62 to be used at level 60 by digitized waveform editor 64).
For example, if a user wanted to enter a third harmonic construct at level 62, the user may access the waveform configuration tool 68 which provides the following exemplary configuration interface via user interface 23 including fields wherein the user adds the appropriate information to create the construct comprising a new waveform equation executable by editor 64 to provide a digitized waveform 66:
wherein data[n] is the voltage at point n. Following creation, the second programming level 62 may provide “Third Harmonic” as a construct option of programming for a user.
More specifically, following the creation of the construct (e.g., new waveform type), the programming circuitry 20 executing programming to function as a segmented scan editor 70 may present the following editor interface via user interface 23 to a user with appropriate fields to be filled in by the user to program the analysis device 10 at level 62:
Accordingly, following creation of the new construct, a user may identify the construct by name and fill in the appropriate parameters presented by the editor interface.
Following entry of the appropriate data via the segmented scan editor 70, the processing circuitry 20 executing the appropriate algorithm at the respective programming level (e.g., segmented scan editor 70) may generate the following code comprising the segmented scan 72 by replacing the parameters of the respective equation with the entered values in accordance with the desired processing of digitized waveform editor 64:
for (n=0; n<totalNumberOfSamples; n++)
data[n]=sine (n*2000000*2*PI/samplesPerSecond)*5+sine (n*2000000*6*PI/samplesPerSecond)*2
During compiling, processing circuitry 20 executing digitized waveform editor 64 may thereafter process the code of segmented scan 72 to generate the actual data stream comprising the digitized waveform 66.
Using the added construct, a user may program at level 62 and change a frequency or other desired value of the respective equation without having to reproduce the entire code to be processed by the digitized waveform editor 64.
Referring to
At a step S10, a user indicates a desire to create a new construct which is processed to provide data usable in another level of programming abstraction. The user may identify or name the new construct to be defined at step S10 (e.g., waveform type of third harmonic).
At a step S12, the user identifies the parameters to be presented to a user in an editor interface during subsequent usage of the construct to program the analysis device. Exemplary identification of parameters comprises frequency, first harmonic amplitude, or third harmonic amplitude in the example above.
At a step S14, the user inputs an appropriate equation which provides data for the next lower level and which may be executed during subsequent processing. Accordingly, in at least one example, the user defines the new construct in terms of the lower level (e.g., providing an equation and appropriate parameters corresponding to lower level 60 in the described example) which may be processed by the editor of the lower level. In other embodiments, levels higher than level 62 may be provided and such levels may include constructs defined in terms of level 62 enabling processing of data created according to such constructs by editor 70.
Referring to
At a step S20, an editor interface queries the user to identify the desired construct (e.g., type of waveform).
At a step S22, the user input identifying the desired construct is accessed by the processing circuitry.
At a step S24, the processing circuitry controls the user interface to display the appropriate parameters corresponding to the identified construct.
At a step S26, the user may input the appropriate data (e.g., parameter values requested via the interface) which is accessed by the processing circuitry.
At a step S28, the processing circuitry generates data (e.g., segmented scan 72) for usage by another level of programming abstraction. In one example, the processing circuitry accesses an equation associated with the construct and inserts values of parameters inputted by the user at step S26 into the equation. Thereafter, the generated data may be processed at a lower level of programming abstraction.
At least some aspects of the disclosure provide a plurality of levels of programming abstraction for programming an analysis device. A multiple layered configuration ability is provided for controlling the analysis device. Some aspects permit addition of user-defined constructs to one or more of the levels to assist a user with programming and to provide increased flexibility. In at least some aspects, the user may extend any given level of programming abstraction using a configuration tool to build constructs based upon a lower layer.
Referring to
In the depicted embodiment of
A user may input data 90 via editor 92 which comprises or may be used to specify values of device parameters (e.g., define values usable by components 26, 27, 28 and 30 and may include a stream of values to generate a waveform or a value which may remain constant during analysis of a sample). As discussed above, exemplary user input data 90 at level 60 may include an equation and appropriate values for parameters of the equation, values for device parameters, and/or other input pertinent to device parameters. Compiler 86 may access the inputted data (e.g., equation and values for the equation parameters entered by the user) from editor 92 and solve the equations using the values to calculate machine data 88 comprising a plurality of discrete values (e.g., a data stream of a plurality of digital values representing the amplitude of an analog waveform at a plurality of moments in time) also referred to as waveform data usable by waveform generators 22 to formulate one or more analog voltage waveforms. In higher levels of abstraction, editor 92 may access construct database 84 responsive to user input to generate appropriate data to be applied to compiler 86. For example, if not entered by a user, editor 92 may access a construct comprising an equation from construct database 84 and present a respective user interface to the user to assist with entry of input 90.
Construct editor 82 may be utilized to create new constructs, for example, responsive to design user input data 80 and the new constructs may be stored within construct database 84. Construct editor 82 may be omitted in some embodiments (e.g., wherein level 60 corresponds to the lowest level of programming abstraction). Construct database 84 is a repository of construct data (e.g., construct name, parameter list, equation) to be used by editor 92 and compiler 86. Other forms of constructs may be stored in other embodiments or for other levels of programming abstraction.
Compiler 86 operates to process a respective equation from construct database 84 to compile the input data of user input 90 (e.g., the compiler 86 may process the equation using the user inputted values to generate the machine data 88).
A user programming at a higher level of abstraction may program analysis device 10 by accessing editor 104 to enter user input data 102. Editor, 104 may use a construct name, parameter list, and equation (if appropriate) to access construct database 98 to produce a user interface for the end user to assist with the provision of input 102 comprising parameter specific data in one embodiment. Construct database 98 is a repository of construct data (e.g., construct name, parameter list, equation) to be used by the respective compiler 100 and editor 104. Other forms of constructs may be stored in other embodiments or for other levels of programming abstraction.
In accordance with exemplary programming levels 60, 62, compiler 100 of level 62 uses an equation from construct database 98 to compile the input 102 from editor 104 (or a higher level of programming abstraction not shown in
Construct editor 96 may be utilized by a user to add new constructs for the respective programming level to construct database 98. A user may enter user input data 94 for the new construct for example, by providing a new name, new equation, list of parameters for the equation, etc. for the described exemplary level 62 of programming abstraction. Following the creation of a new construct at a given level of programming abstraction, a user may access and utilize the new construct to thereafter program the analysis device 10. Other types of constructs may be added to other (e.g., higher) levels of programming abstraction.
In compliance with the statute, the invention has been described in language more or less specific as to structural and methodical features. It is to be understood, however, that the invention is not limited to the specific features shown and described, since the means herein disclosed comprise exemplary forms of putting the invention into effect.
This application claims priority to U.S. Provisional Patent Application Ser. No. 60/500,482, filed Sep. 4, 2003, entitled “Analysis Device Operational Methods And Analysis Device Programming Methods”, and the teachings are incorporated by reference herein.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US04/29029 | 9/3/2004 | WO | 1/26/2007 |
Number | Date | Country | |
---|---|---|---|
60500482 | Sep 2003 | US |