Data Processing Device and Method for the Evaluation of Mass Spectrometry Data
20220392582 · 2022-12-08
Assignee
Inventors
- Carmen PASCHKE (Bremen, DE)
- Hans GRENSEMANN (Hude, DE)
- Torsten UECKERT (Lilienthal, DE)
- Kai FRITZEMEIER (Stuhr, DE)
Cpc classification
H01J49/425
ELECTRICITY
G01N30/88
PHYSICS
G16C20/20
PHYSICS
International classification
G16C20/20
PHYSICS
Abstract
A data processing device comprises a processor unit adapted to process a plurality of initial data vectors provided by a chromatograph and/or a mass spectrometer, the processing being carried out in one, two or more processing steps producing items of processed data, and a storage unit adapted to save and retrieve initial data vectors and/or items of processed data, in particular processed data vectors or identified compounds, and/or items of additional data, in particular properties of the sample introduced in the mass spectrometer. Each item of processed data and/or additional data is connected to at least one initial data vector, and wherein the processor unit is adapted to group, select and/or modify initial data vectors and/or items of processed data according to one or more items of additional data.
Claims
1. A mass-spectrometric molecular compound identification system, comprising a processor unit adapted to process a plurality of mass spectrometry data sets provided by a mass spectrometer from a plurality of samples introduced into the mass spectrometer, each mass spectrometry data set comprising value pairs of measured intensity versus mass or mass over charge, a spectrum over a defined frequency range or a transient given over a defined time span, the processing being carried out in one, two or more processing steps and comprising adjusting a mass scale, normalizing the intensity and/or identifying a compound producing items of processed data comprising processed mass spectrometry data sets and/or identifications of compounds, and a storage unit adapted to save and retrieve the mass spectrometry data sets and/or the items of processed data, and items of additional data, the items of additional data comprising properties of the sample introduced in the mass spectrometer that are study variables, wherein each saved item of additional data or each saved item of processed data and each saved item of additional data is connected to at least one saved mass spectrometry data set mass spectrometry data set to be retrievable as sets of corresponding data items, wherein the processor unit is adapted to group, select and/or modify mass spectrometry data and/or items of processed data according to one or more of the properties of the sample saved in the storage unit as saved items of additional data, the mass spectrometry data and/or items of processed data retrieved by the storage unit based on the one or more properties of the sample as set of corresponding data items, and wherein the storage unit is adapted to store the mass spectrometry data, the items of processed data and/or the items of additional data in a relational database and is comprising a data interface for defining dynamic data types in the relational database and/or modifying the relational database, so that dynamic tables can be added and/or columns can be added to existing dynamic tables.
2. The mass-spectrometric molecular compound identification system of claim 1, wherein each mass spectrometry data set is assigned a unique identifier, and wherein each item of processed data is connected to an item of processed data from a preceding processing step of the same mass spectrometry data set and/or directly to the mass spectrometry data set.
3. The mass-spectrometric molecular compound identification system of claim 1, wherein the relational database comprises a fixed number of predefined tables and a number of dynamic tables, wherein at least one of the predefined tables contains a definition of dynamic data types, and wherein one dynamic table is created for each dynamic data type.
4. The mass-spectrometric molecular compound identification system of claim 1, wherein the definition of dynamic data types may comprise references to converters, wherein a storage form of an item of the defined dynamic data type is converted into a processing form when retrieving data from the storage unit, and the processing form of an item of the defined dynamic data type is converted into the storage form when saving data to the storage unit.
5. The mass-spectrometric molecular compound identification system of claim 1, wherein the storage unit is adapted to store connections between items of a first and items of a second dynamic data type, and wherein the relational database comprises at least one further dynamic table containing the connections between the items of the first and the items of the second dynamic data type.
6. The mass-spectrometric molecular compound identification system of claim 5, wherein one dynamic table is created for each connection between two dynamic data types, and wherein the dynamic table of a connection contains one or more columns for storing items of additional data and/or items of processed data.
7. The mass-spectrometric molecular compound identification system of claim 1, wherein at least one of the dynamic data types is adapted for the characterization of the sample and/or a targeted compound.
8. The mass-spectrometric molecular compound identification system of claim 7, wherein the samples introduced in the mass spectrometer contain proteins and/or peptides, wherein the dynamic data types comprise protein, and peptide, wherein the processing comprises a processing step of identifying peptides and a subsequent processing step of identifying proteins, and wherein the relational database comprises a table of identified proteins and a table of identified peptides.
9. The mass-spectrometric molecular compound identification system of claim 7, wherein the samples introduced in the mass spectrometer contain a drug and/or a metabolite, wherein the user-defined data types comprise drug, metabolite, and modification.
10. The mass-spectrometric molecular compound identification system of claim 1, further comprising a module interface, which allows for adding dynamic modules that implement processing steps, wherein the dynamic modules can save and/or retrieve items of data as well as add dynamic data types and/or modify tables of the relational database.
11. The mass-spectrometric molecular compound identification system of claim 10, the mass-spectrometric molecular compound identification system further comprising a workflow interface for defining sequences of processing steps, wherein processing steps can be performed by default modules and/or dynamic modules, wherein the workflow interface provides services to modules which allows them to retrieve data from the relational database, define dynamic data types, and to save data in the relational database.
12. The mass-spectrometric molecular compound identification system of claim 11, wherein the workflow interface is adapted to define a first and a second workflow, each workflow comprising a sequence of one or more processing steps, wherein the first workflow is carried out by the processor unit before the second workflow, and wherein the processed data from the first workflow is used as input data for the second workflow.
13. The mass-spectrometric molecular compound identification system of claim 12, wherein the workflow interface is adapted to define a number of first workflows, each workflow comprising a sequence of one or more processing steps, wherein the first workflows are carried out independently by the processor unit, and wherein the second workflow comprises a processing step of combining, comparing and/or analyzing the processed data resulting from the number of first workflows.
14. The mass-spectrometric molecular compound identification system of claim 10, wherein the mass-spectrometric molecular compound identification system is adapted to store a workflow comprising a sequence of processing steps in a workflow file, and wherein the mass-spectrometric molecular compound identification system is further adapted to store at least the items of processed data, from a workflow being carried out by the processor unit in a result file.
15. The mass-spectrometric molecular compound identification system of claim 14, wherein before carrying out a subsequently defined workflow, the processor unit is adapted to compare the processing steps and the list of mass spectrometry data of the subsequently defined workflow to the processing steps and the list of mass spectrometry data of one or more stored workflows, and if both the processing steps and the list of initial data files of a stored workflow correspond to the initial processing steps of the subsequent workflow, data from the corresponding result file of that stored workflow is retrieved in place of carrying out the initial processing steps of the subsequently defined workflow.
16. The mass-spectrometric molecular compound identification system of claim 10, wherein the storage unit is further adapted to store for each item of processed data which default or dynamic module created or modified this item of processed data.
17. The mass-spectrometric molecular compound identification system of claim 1, further comprising visualization means, wherein the processor unit is further adapted to visualize the grouped, selected and/or modified data of one or more processing steps using the visualization means.
18. The mass-spectrometric molecular compound identification system of claim 1, further comprising an instrument interface for sending commands to and receiving data from a mass spectrometer.
19. The mass-spectrometric molecular compound identification system of claim 18, wherein the processor unit is adapted to process a first set of mass spectrometry data, performing one or more processing steps, wherein the instrument interface is adapted to send commands to the mass spectrometer, initiating the measurement of a second set of mass spectrometry data, and to receive the second set of mass spectrometry data from the mass spectrometer, wherein the storage unit is adapted to save the second set of mass spectrometry data, and wherein the processor unit is adapted to process the second set of mass spectrometry data, performing one or more processing steps.
20. A mass spectrometry setup comprising a mass-spectrometric molecular compound identification system according to claim 18 and a mass spectrometer.
Description
LIST OF FIGURES
[0111]
[0112]
[0113]
[0114]
[0115]
[0116]
[0117] Referring to
[0118] Ions from the electrospray ion source 2 pass through a transfer capillary 3 to a stacked ring ion guide (S-lens) 4 and then through an injection flatapole 6 and a bent flatapole 8. Neutral clusters and droplets may fly unimpeded through gaps between the rods of the bent flatapole and thus do not contribute to the measured signal. The pressure in the region of the S-lens to the bent flatapole is typically 1-10 mbar, so that a degree of collisional cooling occurs in the bent flatapole. An ion gate 10 in the form of a fast split lens controls the entry of the ions into an RF-only transport multipole 12, which in the shown embodiment is an octapole and typically held at a pressure less than 10.sup.−4 mbar. In a preferred alternative embodiment, the transport multipole 12 is at least partially implemented as a quadrupole mass filter, thus allowing for a very fast mass selection, and may further comprise one or two additional lenses and/or an additional flatapole.
[0119] From the transport multipole the ions enter a C-trap 14 typically with a pressure therein of (0.1-4.0)×10.sup.−3 mbar (for example 5×10.sup.−4 mbar). Optionally the ions may be passed for further cooling into a gas-filled dead-end Higher energy Collisional Dissociation (HCD) cell 16 comprising RF multipole rods typically with a pressure of (1-20)×10.sup.−3 mbar (e.g. 5×10.sup.−3 mbar). From there the ions are passed back into the C-trap. The HCD cell is provided with an axial field for this purpose, e.g. by providing a retarding voltage on the back of the HCD. The HCD cell is separated from the C-trap by a single diaphragm, which allows easy tuning of the HCD cell. If required, the RF and axial field applied to the HCD cell can be set to provide for fragmentation of ions therein. The HCD cell allows better trapping while maintaining a certain pressure in the C-trap and thus in the Orbitrap, because the HCD cell is i) longer and ii) at a higher pressure than the C-trap. Ions are injected from the C-trap into the Orbitrap mass analyser 20. The HCD might be a pseudo MS3 device, where a first non mass-selective fragmentation has been performed in the ion source region and one of the fragments selected in the RF multipole. Besides HCD, for example low energy collision induced dissociation, electron capture or electron transfer dissociation or photodissociation could be used.
[0120] The vacuum in the Orbitrap compartment is preferably below 7×10.sup.−10 mbar, although a pressure of up to 2×10.sup.−9 mbar could be used. The m/z of larger, slower ions may be determined at such pressures in the Orbitrap, which may be due to the total travelled path that decreases with mass faster than the mean free path increases with mass. The number of ions in the Orbitrap is preferably controlled automatically (automatic gain control) by measuring the total ion charge using a short pre-scan before the analytical scan and from that calculating the ion injection time for the analytical scan. For high scan rates, the previous analytical scan can be used as the pre-scan to optimize the scan cycle time. Additionally or alternatively, an ion collector 17 may be placed behind the HCD collision cell and used for independent charge detection, which periodically (e.g. every 5-10 sec) checks and adjusts the accuracy of the automatic gain control. Transients detected by image current detection in the Orbitrap mass analyzer are processed in a data processing device using Fourier Transformation to convert the transient signals into frequency components and then m/z.
[0121] While the mass spectrometry setup described above contains a mass analyzer of the Orbitrap type, it will be appreciated that other mass analyzers may also be used, based e.g. on a time-of-flight measurement or a physical separation of the different masses in a sector field or mass-dependent losses such as in a quadrupole instrument. Further, the exact setup or combination of mass filter, collision cell and mass analyzer may be varied; for some electrostatic trap instruments, sequential application of suitable voltages may replace different stages of mass spectrometry that are physically separate in other instruments.
[0122] The data processing device 30 comprises an instrument interface 22, which is adapted to send commands to or operate the mass spectrometer 1 and liquid chromatography setup 21 and to receive measured data or status information from the instrument, a processor unit 23 and a storage unit 24. Preferably, the data processing device further comprises visualization means 25, in particular a display and/or a printer, and interaction means 26, in particular a keyboard and/or a mouse, so that the user can view and enter information.
[0123] The instrument interface 22 can be any interface known from the state of the art that is adapted to send data to and receive data from the mass spectrometer 1 and/or the ion source comprising the liquid chromatography setup 21. The mass spectrometer may comprise a control unit (not shown) adapted to communicate with the instrument interface 22, to set voltages on one or more of the ion-optical elements of the mass spectrometer and/or receive signals from detectors or sensors in the mass spectrometer. The control unit may contain a processor unit adapted to perform a pre-processing of the measured signals such as a Fourier transformation, data compression, peak identification, peak picking, mass calculation, peak annotation (e.g. with exact mass, area, elemental composition, accuracy information for intensity and mass, charge state determination, deconvolution, identification of isotopic clusters, etc.). Connection between instrument interface 22 and mass spectrometer and/or ion source may be established by a wire or a glass fibre or wirelessly via radio communication.
[0124] The data processing device can be realized as a standard personal computer or in a distributed form with a number of processing devices interconnected by a wired or wireless network, so that the processor unit 23 may contain a plurality of processor cores in one or several interconnected units. The functions for processing the data are preferably implemented in an object-oriented programming language such as C# or C++; frameworks such as .NET may be used.
[0125] The storage unit 24 is adapted to store initial data vectors, e.g. measured mass spectra, and/or items of processed data, such as spectra with normalized intensity and/or calibrated mass scale, and/or items of additional data, e.g. the information in which database a spectral match for a particular initial data vector (or a corresponding processed data vector) was found. For this purpose, the storage unit preferably comprises memory devices which save information in the form of electrical charges, such as a random access memory, and/or memory devices which save information in the form of magnetic domains, such as a hard drive. Preferably, the storage unit 24 is adapted to store the initial data vectors, the items of processed data and/or the items of additional data in a relational database. A particularly preferred embodiment of a relational database will be described below in connection with
[0126] When the data processing device comprises visualization means 25 and interaction means 26, operation of the mass spectrometry setup is preferably controlled via a graphical user interface (GUI).
[0127] In proteomics experiments, the samples to be measured may comprise tissues from different organs or different body fluids; when labeling of the samples is performed, different tissues may be measured simultaneously in one mass spectrometry scan. The samples may be digested using e.g. trypsin; preferably they are ionized using a liquid chromatography—electrospray ion source and injected in a mass spectrometer. Preferably, additional stages of mass spectrometry (MS.sup.2 or MS.sup.n) are carried out for interesting regions of the mass spectrum and/or selected elution time intervals.
[0128] Measured spectra may be structured via “studies” which contain in particular a list of spectra and additional information connected to a spectrum, in particular factors or study variables. Preferably, the measured spectra and items of additional data connected to a measured spectrum, e.g. the tissue from which the sample was taken, are saved in a database of the storage unit 24.
[0129] Referring to
[0130] In step 201 (“Spectrum Files”), spectrum files are read from the storage unit. These files may contain one or more mass spectra in one or more mass ranges. When measured with a liquid chromatography—mass spectrometry setup, as is usually the case in proteomics, a number of mass spectra were measured at subsequent times, and the raw data thus contain both the information of a chromatogram, i.e. intensity against elution time, as well as that of a mass spectrum, i.e. intensity against mass-to-charge ratio. Preferably, the full set of data is kept in a separate raw file, and only the initial data vectors to be processed are extracted and stored in the database.
[0131] From the spectrum files, the mass spectra to be analyzed are selected in step 202 (“Spectrum Selector”). This may comprise a restriction to a certain mass range and/or a selection according to one or more items of additional data, e.g. only selecting spectra measured under specific conditions or prepared in a specific way. In particular, measured spectra may e.g. be selected according to the tissue they were taken from.
[0132] In some embodiments, the mass spectra may be processed further in order to reduce the amount of data; in particular, a peaklist may be generated containing a position and intensity, which can be determined from a centroid fitted to the measured spectra with a defined centre position and peak height.
[0133] In step 203 (“Sequest HT”), the selected mass spectra are compared to reference spectra in a database. When position and relative intensities of peaks in the measured spectrum match those of a reference spectrum from a known peptide or protein within a certain tolerance, it can be concluded that the sample contains a particular peptide or protein, i.e. that peptide or protein is identified. The reference spectrum may have been measured or calculated based on a digestion “in silico” of the protein e.g. by trypsin. For the identification of proteins and peptides, many different methods and/or databases are known; one method is e.g. disclosed by Cox et al. in J. Proteome Res. 2011, 10, 1794-1805.
[0134] For limiting the false discovery rate, in step 204 (“Target Decoy PSM Validator”) a validation of the identified peptides or peptide spectral matches (PSM) is carried out. In particular, a threshold score may be defined, which has to be surpassed in order for an identification to be considered. This threshold score may e.g. be determined via a decoy search. In principle, other methods for a validation of the identification could also be used.
[0135] The spectrum files read in step 201 are also supplied to processing step 205 (“Event detector”). Processing steps in the workflow may preferably be implemented by dynamic modules, which generally can be processed concurrently. Step 205 serves to identify peaks which are well defined with respect to the time axis of elution time of the liquid chromatography setup and the mass axis of the mass spectrometer.
[0136] In step 206 (“Precursor Ions Quantifier”), the absolute or relative quantity of the measured samples is determined. Processing steps may use items of processed data from multiple processing steps. For step 206, position and intensity of detected peaks as well information on identified peptides and/or proteins are needed. As a result, step 206 needs to be carried out posterior to step 205 and step 204. When all steps are implemented as dynamic modules, modules 204 and 205 are concurrent, whereas module 206 needs to wait for both modules to finish processing. Quantification may be carried out according to known label-based or label-free methods, such as disclosed in WO 2013/149963 A1. In a label-based method, different mass tags are attached to originally identical peptides from different samples thus causing the occurrence of multiple peaks separated by the mass differences corresponding to the respective mass tag; by subsequently mixing different sub-samples and performing mass spectrometry, the influence of varying instrument response is automatically accounted for when comparing the intensities of the different peaks in order to determine relative quantities. When using e.g. the method of Stable Isotope Labeling by Amino acids in Cell culture (SILAC), cells are fed either normal (‘light’) or heavy amino acids in culture; in order to produce heavy amino acids, preferably .sup.12C atoms are substituted by .sup.13C atoms.
[0137] According to a preferred embodiment of the invention, items of processed and/or additional data produced or used in the processing of the first workflow are stored in one result file. The processing steps of the first workflow may in particular normalize the intensities and/or convert a mass scale of the initial data vectors processed, and generate intermediary results such as primary search results and raw quantification information, so that the first workflow can also be termed a “processing workflow”.
[0138] An advantage of the inventive data processing device consists in that it is possible to store arbitrary items of data and to process arbitrary items of data, or to process other data based on those arbitrary items of data. For this purpose, the data storage unit comprises in a preferred embodiment of the invention a data interface for defining dynamic data types and/or modifying the relational database, so that dynamic tables can be added and/or columns can be added to existing dynamic tables. In a particularly preferred embodiment of the invention, the data processing device comprises a module interface, which allows for adding dynamic modules that implement processing steps of a workflow, wherein the dynamic modules can save and/or retrieve items of data as well as add dynamic data types and/or modify tables of the relational database. In the following, particularly these two aspects of the invention are described in more detail for some processing steps of a second workflow.
[0139] In
[0140] Before discussing the processing steps, a data interface of the storage unit according to a preferred embodiment of the invention, also termed “Entity Data Service”, will be described. The entity data service is preferably realized as an object-relational mapper, which can be used to persist objects and connections between objects in a relational database. The relational database can e.g. be implemented using a library such as SQLite, and the content of the database may be stored in a database file on a non-volatile memory such as a hard drive. In a particularly preferred embodiment, .NET classes are mapped to tables in the database file, so that each class is stored in a separate table in which each column represents a property and each row represents an object of a class. This has the advantage that persisted data can be read from the database file and converted back into collections of .NET objects.
[0141] It is preferred that the entity data service further stores meta information about the persisted objects, indicating how they should be handled and displayed. The meta information may comprise an ontology, in particular based on public standards, to facilitate e.g. processing mass spectra based on items of additional information.
[0142] Preferably, initial data vectors, processed data and additional data of a workflow are stored in one relational database, the contents of which can be persisted in a result file, in particular one database file or a set of associated files.
[0143] In
[0144] In the table “ReportInfo” general information is stored, such as a date of creation of the result file and the version of the database engine used for creation of the database; preferably, a globally unique identifier is assigned to each created result file.
[0145] The table “DataTypes” contains a list of all dynamic data types defined in a static or dynamic program module or by the user. A dynamic data type consists of a set of properties, which can either be of one basic data type or (in the case of an object) be made up of a combination of basic data types. For each dynamic data type, a dynamic table is created for saving the data items of that data type. In the table “DataTypes”, one row is stored for each defined dynamic data type; preferably, it contains a unique name, a display name, a description of the dynamic date type and the associated dynamic table for saving the data items or instances. Preferably, each dynamic data type is assigned a (globally) unique numeric identifier (GUID).
[0146] In the table “DataTypesColumns”, the properties of a dynamic data type are indicated, comprising a description for each property of all defined dynamic data types. Preferably, properties can be defined as nullable, which defines that null values are allowed, or can be set to a default value if no specific value is given.
[0147] The table “DataTypesIDColumns” stores which properties are specified to comprise the unique numeric identifier (ID) of objects of a defined dynamic data type.
[0148] In the table “DataTypesDataGroups” a number of properties of dynamic data types may be given that can be clustered, allowing for grouping together a subset of columns of a dynamic data type. This allows e.g. for identifying which columns were created by a specific module implementing a specific processing step.
[0149] The table “CustomDataTypes” contains a list of all basic data types that can be used in the definition of dynamic data types or their properties. Table 1 gives a preferred list of supported basic data types, comprising string, double, int (especially Int 32), long (especially Int64), bool and byte (or array of bytes).
TABLE-US-00001 TABLE 1 CustomDataTypes CustomDataType BasicDataType 1 String 2 Double 3 Int 4 Long 5 Bool 6 Byte
[0150] In the table “ConnectedDataTypes”, connections between dynamic data types are listed, indicating further in which additional dynamic table the properties of the connection are stored; preferably, a unique name and/or numerical identifier is also given. Generally, many to many (m to n) connections between two dynamic data types are possible, and further properties of the connection can be stored. Advantageously, this allows for storing information that is not associated to one of the dynamic data types, but to the connection itself.
[0151] The table “ConnectedDataTypesColumns” lists the properties associated with the defined connections. For each additional item of data related to the connection, a further row is added to this table.
[0152] The table “ConnectedDataTypesIDColumns” stores which properties are specified to comprise the unique ID of connections between objects of dynamic data types.
[0153] In the table “ConnectedDataTypesDataGroups” a number of properties of a defined connection between dynamic data types may be given that can be clustered, allowing for grouping together a subset of columns that e.g. were created by a specific module implementing a specific processing step.
[0154] The table “IndirectConnectedDataTypes” allows for storing indirect connection; even though no connection is defined between a first and a second table, they may be connected via a third table, if both a connection between the first and the third table and a connection between the second and the third table exist. When both the first and the second table are also connected to a fourth table, two different paths for reading data from the second table based on data from the first table. In the table “IndirectConnectedDataTypes”, a default connection path can be specified between the first table and the second table which are indirectly connected.
[0155] Preferably, columns of a defined dynamic data type may contain arbitrary data types, when a module for conversion is provided. The predefined table “SystemTypes” contains an indication which converter to use for reading or writing a specific column of a defined dynamic table. In a particularly preferred embodiment, a data processing device according to the invention may be implemented in programming language such as C# using a framework such as .NET, so that for each dynamic data type a C# class of a specific system type is defined, and for each property of the dynamic data type a converter for reading and storing can be used. The table “SystemTypes” then connects a unique identifier stored in the dynamic tables with the full name of the .NET class type of the converter.
[0156] The predefined table “EnumDataTypes” contains a list of specifically defined data types that consist of a set of named constants. In the table “EnumDataTypeValues”, the different possible values of the respective enumeration are listed. Preferably, each enumeration constant is mapped to a unique integer value in order to speed up processing.
[0157] The predefined tables “DataDistributionMaps”, DataDistributionBoxes” and “DataDistributionLevels” are connected with a special visualization shown in
[0158] In principle, some of the predefined tables of the current embodiment, in particular the tables associated with the DataDistribution visualization, can be omitted without departing from the scope of the claims, so that the number of predefined tables in an alternative embodiment may differ.
[0159]
[0160] The dynamic table “Peptides” contains a list of peptides identified from a spectral match in a database. Properties of the dynamic data type Peptides are stored as additional columns in the dynamic table. These properties may in particular comprise a sequence and a charge.
[0161] In the dynamic table “Proteins”, identified proteins are listed. Properties of the dynamic data type Proteins may comprise a sequence, a description and a weight.
[0162] The dynamic table “PeptidesProteins” lists connections between a protein and a peptide; a peptide is connected to a protein when it constitutes a building block of the protein. Preferably the position of the peptide in the protein is stored as a property of the respective connection.
[0163] The mass of a peptide may have been changed by substituting e.g. an hydrogen atom by a chemical group. In the dynamic table “Modifications” such modifications of a peptide are listed; the mass difference caused by the modification is preferably stored in an additional column.
[0164] Information on which peptide is modified by which chemical group is stored as a connection between a peptide and a modification in the dynamic table “PeptidesModifications”. Properties of the connection may in particular comprise the position of the modification in the peptide.
[0165] Referring to
[0166] The static or dynamic module that implements processing step 301 is adapted to define the dynamic data types peptide, protein and modification. To illustrate basic principles more clearly, only selected properties of the dynamic data types are given with schematic values in the example dataset below. Table 2 shows the content of the predefined table DataTypes after definition of the dynamic data types.
TABLE-US-00002 TABLE 2 DataTypes DataTypeID Name TableName DisplayName Description 1 Peptide Peptides Peptides Identified peptides 2 Protein Proteins Proteins The proteins 3 Modification Modifications Modifications Amino acid modifications
[0167] In table 3, which shows the predefined table “DataTypeColumns”, the properties of the defined data types are listed. For most of the properties, semantic information concerning the interpretation and/or processing of the respective property is given in addition to the information generally needed for the relational database. The semantic term “ID” refers to the unique numerical identifier or index used for the identification of the defined dynamic data type e.g. when retrieving information. Each peptide has a specific sequence of amino acids constituting the peptide, which is indicated by the semantic term “Sequence”. As the data processing device is especially adapted for the processing of mass spectra, the semantic term “Monoisotopic Mass” and “Average Mass” are predefined. Further semantic terms defined especially for the application in proteomics are e.g. “SequestScore”, indicating a score as to the degree of agreement between a measured spectrum and the identified peptide or protein, as well as “ProteinAccession”. Semantic terms are preferably predefined based on generally accepted standard endorsed e.g. by the Human Proteome Organization; for an efficient implementation, a further translation e.g. via an additional table may be carried out.
TABLE-US-00003 TABLE 3 DataTypeColumns CustomData DataTypeID ColumnName DisplayName Type SemanticTerm 1 ID Peptide ID 3 PeptideID 1 Sequence Sequence 1 PeptideSequence 1 Mass Monoisotopic mass 2 Monoisotopic Mass 1 XCorrScore XCorrScore 2 SequestXCorrScore 1 RawQuanValue Quan Value 3 PrecursorRawQuanValue 1 QuanChannel Quan Channel 3 PrecursorQuanChannel 2 ID Protein id 3 ProteinID 2 Sequence Protein sequence 1 ProteinSequence 2 Accession Accession 1 ProteinAccession 2 TitleLine Title line 1 FastaTitleLine 3 ID Modification Id 3 ModificationID 3 Name Name 1 ModificationName 3 AverageMass Av mass 2 AverageMass 3 MonoisoMass Monoiso mass 2 MonoiotopicMass
[0168] When analyzing mass spectra in proteomics, there is a connection between identified proteins and identified peptides: the position of the peptide in the protein. Further, a peptide may be modified, resulting in a mass difference from the unchanged peptide. The modification is located at a certain position in the peptide, and this position is preferably stored as a property of the connection between peptide and modification. Table 4 shows the predefined table “ConnectedDataTypes” with a list of the connected dynamic data types, and table 5 shows the predefined table “ConnectedDataTypesColumns” that gives the properties associated with connections (in the current case the position of a modification in the sequence of a peptide).
TABLE-US-00004 TABLE 4 ConnectedDataTypes DataTypeID1 DataTypeID2 ConnectedTableName 1 2 PeptidesProteins 1 3 PeptidesModifications
TABLE-US-00005 TABLE 5 ConnectedDataTypesColumns CustomData DataTypeID1 DataTypeID2 ColumnName DisplayName Type SemanticTerms 1 3 Position Amino acid 3 SequencePosition position
[0169] In table 6, the dynamic table “Peptides” is shown with schematic values for the sequence of peptides identified in the first workflow, indicating also the score of the identification, e.g. the degree of agreement of the measured spectrum with a database spectrum. Preferably, tables do not need to be normalized, so that not only the sequence (and if present, a modification of a specific peptide, see below) but also the mass of the peptide is given.
TABLE-US-00006 TABLE 6 Peptides ID Sequence Mass Score RawQuanValue QuanChannel 1 ABC 100 1.1 2000 1 2 ABC 105 2.3 2100 2 3 ABCD 110 1.5 3000 1 4 ABCD 110 2 3500 1
[0170] Proteins identified in the first workflow are listed in the dynamic table “Proteins” shown in table 7. In addition to the sequence, the accession or identifier in a protein database is also indicated; the accession is also given in the FASTA format.
TABLE-US-00007 TABLE 7 Proteins ID Sequence Accession TitleLine 1 GHTABCTHZU Accession1 >g1 Accession1 2 FTHABCDIKHFZ Accession2 >g1 Accession2
[0171] Connections between peptides and proteins, indicating which identified peptides are present in an identified protein, are listed in the dynamic table “PeptidesProteins” shown in table 8. In principle, this table could comprise further columns with additional data, containing e.g. the position of the respective peptide in the protein.
TABLE-US-00008 TABLE 8 PeptidesProteins PeptidesID ProteinsID 1 1 1 2 2 1 2 2 3 2 4 2
[0172] In one or several positions in the peptide, an atom (in particular a hydrogen atom) may be substitutes e.g. by a functional group. Such a modification is listed in the dynamic table “Modifications” shown in table 9.
TABLE-US-00009 TABLE 9 Modifications ID Name AverageMass MonoisoMass 1 Acetyl 5 4.9
[0173] The position of the modification in the peptide is preferably stored as a connection between peptide and modification, given in the dynamic table “PeptidesModifications” shown in table 10.
TABLE-US-00010 TABLE 10 PeptidesModifications PeptidesID ModificationsID Position 2 1 2
[0174] A workflow may contain concurrent processing steps, which may be carried out in arbitrary order. For the second workflow of
[0175] Step 310 (“Protein Marker”) serves to identify protein matches which are caused by a contamination. In this step, one or more databases, in particular FASTA files, are searched for matches with the proteins read from the first workflow. The module carrying out this processing step is adapted to either add a further column of type bool for each database searched or to add one column containing a list of databases which gave a match. In table 11, the changed predefined table “DataTypeColumns” is shown (cf. Table 3), indicating that a column has been added to the dynamic table “Proteins”.
TABLE-US-00011 TABLE 11 DataTypeColumns CustomData DataTypeID ColumnName DisplayName Type SemanticTerm 1 ID Peptide ID 3 PeptideID 1 Sequence Sequence 1 PeptideSequence 1 Mass Monoisotopic mass 2 monoisotopic mass 1 XCorrScore XCorrScore 2 SequestXCorrScore 1 RawQuanValue Quan Value 3 PrecursorRawQuanValue 1 QuanChannel Quan Channel 3 PrecursorQuanChannel 2 ID Protein id 3 ProteinID 2 Sequence Protein sequence 1 ProteinSequence 2 Accession Accession 1 ProteinAccession 2 TitleLine Title line 1 FastaTitleLine 3 ID Modification Id 3 ModificationID 3 Name Name 1 ModificationName 3 AverageMass Av mass 2 AverageMass 3 MonoisoMass Monoiso mass 2 Monoisotopic Mass 2 IsContaminant Is contaminant 5 IsContaminantFlag
[0176] Table 12 shows the changed dynamic table “Proteins” (cf. Table 7), comprising the column which indicates if the respective protein was found in a contaminant database.
TABLE-US-00012 TABLE 12 Proteins ID Sequence Accession TitleLine IsContaminant 1 GHTABCT Accession1 >g1 FALSE HZU Accession1 2 FTHABCDI Accession2 >g1 TRUE KHFZ Accession2
[0177] By this additional information, it is now possible in subsequent processing steps to select mass spectra and/or identified proteins, which did not result in a match in any contaminant database and thus should be further analyzed.
[0178] In step 302 (“PSM Grouper”), identified peptides or peptide spectral matches (PSMs) are grouped. Preferably, the dynamic module for grouping peptides sorts the peptides both according to sequence and to mass, because modifications may lead to different masses in spite of the same sequence. For grouping the peptides, a new dynamic data type “PeptideGroup” is added to the predefined table “DataTypes”, as shown in table 13.
TABLE-US-00013 TABLE 13 DataTypes DataTypeID Name TableName DisplayName Description 1 Peptide Peptides Peptides Identified peptides 2 Protein Proteins Proteins The proteins 3 Modification Modifications Modifications Amino acid modifications 4 PeptideGroup PeptideGroups Peptide groups Grouped peptides
[0179] In addition to a unique id of the peptide group, the sequence and mass are also stored, as indicated in the changed predefined table “DataTypeColumns” shown in table 14.
TABLE-US-00014 TABLE 14 DataTypeColumns CustomData DataTypeID ColumnName DisplayName Type SemanticTerm 1 ID Peptide ID 3 PeptideID 1 Sequence Sequence 1 PeptideSequence 1 Mass Monoisotopic mass 2 monoisotopic mass 1 RawQuanValue Quan Value 3 PrecursorRawQuanValue 1 QuanChannel Quan Channel 3 PrecursorQuanChannel 1 XcorrScore XcorrScore 2 SequestXCorrScore 2 ID Protein ID 3 ProteinID 2 Sequence Protein sequence 1 ProteinSequence 2 Accession Accession 1 ProteinAccession 2 TitleLine Title line 1 FastaTitleLine 3 ID Modification ID 3 ModificationID 3 Name Name 1 ModificationName 3 AverageMass Av mass 2 AverageMass 3 MonoisoMass Monoiso mass 2 MonoisotopicMass 2 IsContaminant Is contaminant 6 IsContaminantFlag 4 ID Peptide group ID 3 PeptideGroupID 4 Sequence Sequence 1 PeptideGroupSequence 4 Mass MonoIsotopic mass 2 Monoisotopic mass
[0180] In the predefined table “ConnectedDataTypes”, the newly defined connections between peptides, proteins, peptide groups and modifications are indicated, as can be seen in table 15.
TABLE-US-00015 TABLE 15 ConnectedDataTypes DataTypeID1 DataTypeID2 ConnectedTableName 1 2 PeptidesProteins 1 3 PeptidesModifications 1 4 PeptidesPeptideGroups
[0181] Table 16 shows a schematic example of a dynamic table with peptide groups; in case of a modification, two peptides with the same sequence are classed in different groups. The assignment of peptides to groups is stored as a connection; the corresponding connections are shown in table 17.
TABLE-US-00016 TABLE 16 PeptideGroups ID Sequence Mass 1 ABC 100 2 ABC 105 3 ABCD 110
TABLE-US-00017 TABLE 17 PeptidesPeptideGroups PeptidesID PeptideGroupsID 1 1 2 2 3 3 4 3
[0182] In step 303 (“Peptide Validator”), peptide groups are validated, so that a score or confidence is associated with a found peptide group. For this, a new column “Confidence” is added to the dynamic table “PeptideGroups” as is reflected by the new row in the predefined table “DataTypeColumns” shown in table 18. An exemplary list of peptide groups is shown in table 19.
TABLE-US-00018 TABLE 18 DataTypeColumns CustomData DataTypeID ColumnName DisplayName Type SemanticTerm 1 ID Peptide ID 3 PeptideID 1 Sequence Sequence 1 PeptideSequence 1 Mass Monoisotopic mass 2 monoisotopic mass 1 XCorrScore XcorrScore 2 SequestXCorrScore 1 RawQuanValue Quan Value 3 PrecursorRawQuanValue 1 QuanChannel Quan Channel 3 PrecursorQuanChannel 2 ID Protein ID 3 ProteinID 2 Sequence Protein sequence 1 ProteinSequence 2 Accession Accession 1 ProteinAccession 2 TitleLine Title line 1 FastaTitleLine 3 ID Modification ID 3 ModificationID 3 Name Name 1 ModificationNaame 3 AverageMass Av mass 2 AverageMass 3 MonoisoMass Monoiso mass 2 MonoisotopicMass 2 IsContaminant Is contaminant 6 IsContaminantFlag 4 ID Peptide group ID 3 PeptideGroupID 4 Sequence Sequence 1 PeptideGroupSequence 4 Mass MonoIsotopic mass 2 Monoisotopic mass 4 Confidence Confidence 3 PeptideGroupConfidence
TABLE-US-00019 TABLE 19 PeptideGroups Se- ID quence Mass Confidence 1 ABC 100 3 2 ABC 105 3 3 ABCD 110 2
[0183] In step 304 (“Peptide and Protein Filter”), the lists of identified peptides and proteins are filtered based on a threshold of the confidence, so that only peptides and/or peptide groups and/or proteins which are identified with sufficient reliability will be taken into account. Additionally or alternatively, the filtering may be carried out so that known contaminants are not processed any further. Further, filtering may be based on additional information such as the tissue the sample was taken from. Newly defined dynamic data types are shown in table 20.
TABLE-US-00020 TABLE 20 DataTypeColumns CustomData DataTypeID ColumnName DisplayName Type SemanticTerm 1 ID Peptide ID 1 PeptideID 1 Sequence Sequence 1 PeptideSequence 1 Mass Monoisotopic mass 2 monoisotopic mass 1 XcorrScore XcorrScore 2 SequestXcorrScore 1 RawQuanValue Quan Value 3 PrecursorRawQuanValue 1 QuanChannel Quan Channel 3 PrecursorQuanChannel 1 ExcludedBy Excluded By 3 ExclusionState 2 ID Protein ID 1 ProteinID 2 Sequence Protein sequence 1 ProteinSequence 2 Accession Accession 1 ProteinAccession 2 TitleLine Title line 1 FastaTitleLine 3 ID Modification ID 1 ModificationID 2 ExcludedBy Excluded By 3 ExclusionState 3 Name Name 1 ModificationName 3 AverageMass Av mass 2 AverageMass 3 MonoisoMass Monoiso mass MonoisotopicMass 2 IsContaminant Is contaminant 6 IsContaminantFlag 4 ID Peptide group ID 3 PeptideGroupID 4 Sequence Sequence 1 PeptideGroupSequence 4 Mass MonoIsotopic mass 2 Monoisotopic mass 4 Confidence Confidence 3 PeptideGroupConfidence 4 ExcludedBy Excluded By 3 ExclusionState
[0184] For the dynamic data types peptide, protein and peptide group an exclusion state is added as a property. Preferably, the corresponding column is filled with a special value such as −1 in order to indicate that the corresponding element or row is not excluded; when a module implementing processing step n marks a row for exclusion, in particular the number n of the processing step and/or the module is used to indicate that this element is to be excluded.
[0185] In an alternative embodiment of the present invention, a property for the exclusion state is added on or before step 301, so that any module in the workflow may change the content of the column in order to filter out undesired peptides and/or proteins.
[0186] Table 21 shows a list of the peptides identified in the example workflow; the peptides in the first and the second row are still processed, whereas the third and fourth row are filtered out.
TABLE-US-00021 TABLE 21 Peptides Se- RawQuan Quan Excluded ID quence Mass Score Value Chan By 1 ABC 100 1.1 2000 1 −1 2 ABC 105 2.3 2100 2 −1 3 ABCD 110 1.5 3000 1 5 4 ABCD 110 2 3500 1 5
[0187] In table 22 a list of identified proteins is given; for the current example, the protein in the first row is excluded.
TABLE-US-00022 TABLE 22 Proteins Se- Title IsContam- Excluded ID quence Accession Line inant By 1 GHTABC Accession1 >g1 FALSE 5 THZU Accession1 2 FTHABC Accession2 >g1 TRUE −1 DIKHFZ Accession2
[0188] Table 23 shows the corresponding list of peptide groups; due to the higher confidence level, the first and the second row are processed, whereas the third row is filtered out.
TABLE-US-00023 TABLE 23 Peptide Groups ID Sequence Mass ExdudedBy Confidence 1 ABC 100 −1 3 2 ABC 105 −1 3 3 ABCD 110 5 2
[0189] Step 305 (“Protein Scorer”) serves to add a further score to an identified protein, whereas in step 306 (“Protein Grouping”), proteins and the peptides contained in the proteins are grouped. For simplicity, these two processing steps will not be described in detail, and the corresponding new columns and/or dynamic tables are omitted.
[0190] In step 307 (“Peptide and Protein Quantifier”) normalized quantification data is calculated based on raw quantification data from the first workflow and/or previous processing steps. When using e.g. SILAC for quantification, measured intensity of heavy amino acids is compared to the measured intensity of “light” amino acids. For this purpose, an additional column “HeavyLightRatio” is added to the dynamic tables containing peptides, proteins and peptide groups. Newly defined properties of dynamic data types are shown in table 24.
TABLE-US-00024 TABLE 24 DataTypeColumns CustomData DataTypeID ColumnName DisplayName Type SemanticTerm 1 ID Peptide ID 1 PeptideID 1 Sequence Sequence 1 PeptideSequence 1 Mass Monoisotopic mass 2 monoisotopic mass 1 XcorrScore XcorrScore 2 SequestXcorrScore 1 RawQuanValue Quan value 2 PrecursorRawQuanValue 1 QuanChannel Quan channel 3 PrecursorQuanChannel 1 ExcludedBy Excluded By 3 ExclusionState 2 ID Protein ID 1 ProteinID 2 Sequence Protein sequence 1 ProteinSequence 2 Accession Accession 1 ProteinAccession 2 TitleLine Title line 1 TitleLine 3 ID Modification ID 1 ModificationID 2 ExcludedBy Excluded By 3 ExclusionState 3 Name Name 1 ModificationName 3 AverageMass Av mass 2 AverageMass 3 MonoisoMass Monoiso mass 2 MonoisotopicMass 3 IsContaminant Is contaminant 6 IsContaminantFlag 4 ID Peptide group ID 3 PeptideGroupID 4 Sequence Sequence 1 Sequence 4 Mass MonoIsotopic mass 2 Monoisotopic mass 4 ExcludedBy Excluded By 3 ExclusionState 4 Confidence Confidence 3 PeptideGroupConfidence 1 HeavyLightRatio Heavy/Light 2 PsmQuanRatio 2 HeavyLightRatio Heavy/Light 2 ProteinQuanRatio 3 HeavyLightRatio Heavy/Light 2 PeptideGroupQuanRatio
[0191] Table 25 shows a list of exemplary identified peptides with added quantification ratios. Depending on the implementation, calculation of these ratios may be omitted for excluded peptides in order to speed up processing.
TABLE-US-00025 TABLE 25 Peptides Heavy Se- RawQuan Quan Excluded Light ID quence Mass Score Value Chan By Ratio 1 ABC 100 1.1 2000 1 −1 1.5 2 ABC 105 2.3 2100 2 −1 1.5 3 ABCD 110 1.5 3000 1 5 2 4 ABCD 110 2 3500 1 5 3
[0192] In table 26, a list of identified proteins with calculated quantification ratios is shown. For faster processing, calculation of these ratios may be omitted for excluded proteins.
TABLE-US-00026 TABLE 26 Proteins Heavy Se- Acces- IsContam- Excluded Light ID quence sion TitleLine inant By Ratio 1 GHTAB Acces- >g1 FALSE 5 1.5 CTHZU sion1 Acces- sion1 2 FTHABC Acces- >g1 TRUE −1 2 DIKHFZ sion2 Acces- sion2
[0193] Preferably, quantification ratios are also calculated for peptide groups; table 27 shows an exemplary list.
TABLE-US-00027 TABLE 27 Peptide Heavy Groups Excluded Light ID Sequence Mass By Confidence Ratio 1 ABC 100 −1 3 1.5 2 ABC 105 −1 3 1.5 3 ABCD 110 5 2 3
[0194] Step 308 (“ProteinCenter Annotation”) serves to receive additional information from an external database; this could e.g. be the information that a particular protein is related to a specific function. Grouping spectra and/or identified peptides according to a specific function and/or further processing of the proteins connected to a specific function is possible. In this way a gene ontology linking proteins and functions of the cell may be built up. Both this processing step and step 309 (“Peptide in Protein Annotation”) do not form part of a “standard” workflow for identifying and quantifying peptides and/or proteins and for simplicity will not be described further.
[0195] Preferably, identified and/or quantified peptides and proteins are visualized and/or outputted in an arbitrary format after finishing the second workflow.
[0196] For the following examples of grouping and/or selecting initial data vectors (i.e. spectra) and/or items of processed data (e.g. identified peptides and proteins), it is assumed that a plurality of samples from different tissues of an organism has been taken, and that each sample from a specific tissue has been labelled with the same mass tag of a multiplexed labelling method (such as iTRAQ or TMT). This allows for the simultaneous measurement of sub-samples from different tissues in one mass-spectrometry run and thus avoids e.g. quantification errors due to changes in the instruments sensitivity over time. In addition, samples from the different tissues may have been measured twice using different acquisition methods known in the art such as data-dependent acquisition (DDA) or intelligent data acquisition (IDA). Besides data dependent methods the techniques described here can as well applied to data independent (DIA) or targeted acquisition methods. If required, data sets generated from data independent acquisitions may be deconvoluted, e.g. as described in U.S. Pat. No. 8,481,924, to allow use of algorithms designed for data dependent analysis.
[0197] Corresponding measurements are e.g. disclosed by Bailey et al. in J. Proteome Res. 13, 2152-2161 (2014). The result file for these measurements contains the spectra (initial data vectors), the tissue and the “channel” of the multiplexed labelling as well as the data acquisition method used (items of additional data).
[0198]
[0199] Checkbox 501 allows for the user to indicate that the measured data are to be grouped according to the tissue of the sample.
[0200] In Checkbox 502, the user may indicate that the measured data are to be grouped according to the acquisition method used.
[0201] Window 503 contains a list of ratio groups for which a quantification giving ratios between peaks corresponding to differently labelled amino acids will be carried out. Because both checkbox 501 and checkbox 502 are activated, ratio groups of the different tissues sorted according to the acquisition method will be calculated.
[0202] Elements 504 to 507 indicate some of the created ratio groups.
[0203] Element 504 shows that the intensity ratio of peaks corresponding to peptides and/or proteins measured from a sample containing lung tissue and from a sample containing liver tissue will be calculated. In other words: peak intensities or peak areas will be calculated for the sample group lung (and acquisition method IDA) and for the sample group liver (and acquisition method IDA), and the ratio of these peak intensities or areas will be determined. The ratio for a protein or a peptide group containing several peptides is preferably calculated based on the median of the ratios for individual peptides. Additionally, element 504 comprises a list of corresponding input files containing raw data and/or initial data vectors.
[0204] Element 505 shows from which initial data vectors the intensity ratio for samples from the tissues spleen and liver will be calculated; accordingly, element 506 shows the files of measurements evaluated for the ratio between muscle and liver and element 507 indicated the initial data vectors for calculating the ratio between cerebrum and liver. The number of ratio groups depends from the number of different tissues measured in total; further ratio groups are omitted for simplicity.
[0205] The first processing workflow and the corresponding input files/initial data vectors are indicated in element 508; according element 509 shows the second workflow carried out.
[0206] In the first workflow, “raw” quantification information is calculated; depending on the labelling and/or quantification method used, the intensities of reporter peaks or the integrated areas of precursor ions are determined. The second workflow then contains a processing step of grouping the initial data vectors and/or items of processed data according to the activated checkboxes and to calculate intensity ratios from the grouped spectra.
[0207] Preferably, a list of all identified proteins is created in the second workflow, indicating further in which sample group, individual sample and/or file containing raw data and/or initial data vectors the respective protein was found.
[0208]
[0209] Window 602 shows a list of identified proteins comprising their accession and a description.
[0210] Element 603 is a data distribution box indicating the ratio determined for the protein corresponding to the respective row in the sample group corresponding to the respective column; the ratio may be indicated by a colour code, a greyscale or a number. Preferably, the boxes are left white or empty when no ratio is defined because the protein was not found in one or both of the corresponding sample groups.
[0211] Data distribution boxes are preferably implemented as an array containing numeric values of double precision, integer or Boolean type. In particular, they may be implemented using several predefined tables shown in
[0212] The table “DataDistributionMaps” defines what each array box means; it contains a unique identifier, a name and the CustomDataType of the values given in a box. Optionally, a minimum and a maximum allowed value may be defined.
[0213] The boxes of the map are listed in the table “DataDistributionBoxes”; it contains a unique identifier of the box, a unique identifier of the map, a DisplayName and a description.
[0214] In the table “DataDistributionLevels” different levels are defined for the boxes.
[0215] Window 601 shows a graphical user interface for selecting proteins according to the calculated ratios; in the current example, only proteins showing a four-fold change of intensity ratio in at least five sample groups are shown.
[0216] Advantageously, the entity data service allows for selecting and/or grouping initial data vectors and/or items of processed data according to one or more items of additional data such as a calculated ratio.
[0217] As used herein, including in the claims, unless the context indicates otherwise, singular forms of the terms herein are to be construed as including the plural form and vice versa.
[0218] Throughout the description and claims of this specification, the words “comprise”, “including”, “having” and “contain” and variations of the words, for example “comprising” and “comprises” etc, mean “including but not limited to”, and are not intended to (and do not) exclude other components.
[0219] It will be appreciated that variations to the foregoing embodiments of the invention can be made while still falling within the scope of the invention. Each feature disclosed in this specification, unless stated otherwise, may be replaced by alternative features serving the same, equivalent or similar purpose. Thus, unless stated otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features.
[0220] The use of any and all examples, or exemplary language (“for instance”, “such as”, “for example” and like language) provided herein, is intended merely to better illustrate the invention and does not indicate a limitation on the scope of the invention unless otherwise claimed. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the invention.
[0221] Any steps described in this specification may be performed in any order or simultaneously unless stated or the context requires otherwise.
[0222] All of the features disclosed in this specification may be combined in any combination, except combinations where at least some of such features and/or steps are mutually exclusive. In particular, the preferred features of the invention are applicable to all aspects of the invention and may be used in any combination. Likewise, features described in non-essential combinations may be used separately (not in combination).