MineXpert User Manual

version 12.3.6

PDF document

Filippo Rusconi, 2026

Version 12.3.6
Published: 27/10/2026

Revision history

12.3.1September 2026fr

12.2.0August 2026fr

Update the documentation to describe the new plot management in the composite plot widgets.

12.0.0July 2026fr

Update the documentation to describe the isotopic cluster-based charge determination and subsequently the mass estimations using menu-based selectable algorithms.

11.8.0June 2026fr

Update the documentation to describe the keyboard key-based selection of the integration destination (M for mass spectrum, D for drift spectrum, R for Tic/Xic).

11.7.1June 2026fr

Update the documentation to describe the cumulative intensity integrations.

11.7.0June 2026fr

11.1.0March 2026fr

Update the documentation to describe the new centroid extraction and low mass deconvolver features.

11.0.0January 2026fr

Update the documentation to describe the new application preferences feature and the new vertical rule x-axis label in the plot windows.

10.2.0November 2025fr

Update the documentation to describe the new deconvolution processes.

10.1.1November 2025fr

Update the documentation about specifying the format of analysis session discoveries, in particular about the new feature that lets the user define the number of decimals to be used when printing out float values.

10.1.0November 2025fr

Full port of MineXp to the new XpMass project’s libraries. Add new chapter on JavaScript features now in MineXp.

9.3.1December 2023fr

Added brief documentation of the new MS run probing feature designed to allow the user to configure the loading of timsTOF MS run data from Bruker.

8.5.8October 2022fr

Entirely reworked the user manual to make it more modern from the coding point of view. The users do not see any difference with the previous version.

8.4.0June 2022fr

Update the user manual to document the fact that it is now possible to set the bin size even when computing colormaps involving m/z as one of their dimension.

8.3.0June 2022fr

Update the user manual with the description of the new plot ranges history resetting feature.

8.2.031 January 2022fr

Update the user manual with the description of the new trace low signal threshold removal filter.

8.1.021 April 2021fr

Update the user manual with the description of the new colormap filters used to enhance the signal-to-noise ratio.

8.0.124 March 2021fr

8.0.023 March 2021fr

7.4.02 January 2021fr

Happy new year! With the writing of the new version of the Processing Flow chapter to match the new integration logging mechanisms in MineXp2.

7.4.0December 2020fr

7.0.1October 2020fr

Update of the user manual to document the new combine+ and combine- combinations features.

7.0.0September 2020fr

Update of the user manual to document new features, in particular the MSn mass spectrometric data mining and new mass data plotting features.

6.0.0January 2020fr

Full rewrite of the user manual to document the new mineXpert2 software program. The new mineXpert2 version is a full rewrite of the previous version such that it can handle MSn mass spectrometric data. Major features were included in the new version that are described in detail in this user manual.

5.8.2February 2019fr

Rework the IsoSpec-based isotopic clust calculations to better describe the three available processes. Also, describe the new FWHM calculation feature in the PeakShaperDlg.

5.8.0End January 2019fr

Add section to described the newly developed feature about isotopic cluster calculations based on the IsoSpec library.

5.7.0Beginning January 2019fr

Finished porting of the historical LaTeX-based documentation to the DocBook/DAPS/FOP publishing system. Please, see Colophon for details.

not_setSeptember 2018fr

Update the document to include new features and to make fixes. Insist on the fact that mineXpert reads mzML data files.

not_setMarch 2018fr

Update the document to include new m/z integration features and scripting capabilities.

not_setDecember 2016fr

Major rewriting of the document to incorporate all the new features. Large chapter on the scripting of mineXpert.

not_setDecember 2017fr

Refactored document. First version documenting almost all of the current features of the software program.

not_setMay 2017fr

Refactored document. First version documenting almost all of the current features of the mineXpert software program.

not_setNovember 2016fr

Resume writing, with new program name: mineXpert.

not_setSeptember 2016fr

Start of writing.

1 Preface

1.1 Software feature offerings and intended audience

This manual is about the MsXpertSuite mass spectrometric software suite, a software environment that contains two modules:

This manual is therefore intended for people willing to learn how to use the comprehensive MsXpertSuite software package.

Mass spectrometry has gained popularity across the past twenty years or so. Indeed, developments in polymer mass spectrometry have made this technique appropriate to accurately measure masses of polymers as heavy as many hundreds of kDa, and of any chemical type.

There are a number of utilities—sold by mass spectrometer constructors with their machines, usually as a marketing “plus”—that allow predicting/analyzing mass spectrometric data obtained on polymers. These programs are usually different from a constructor to another. Also, there are as many mass spectrometric data prediction/analysis computer programs as there are different polymer types. You will get a program for oligonucleotides, another one for proteins, maybe there is one program for saccharides, and so on. Thus, the biochemist/massist, for example, who happens to work on different biopolymer types will have to learn to use several different software packages. Also, if the software user does not own a mass spectrometer, chances are he will need to buy all these software packages.

The MsXpertSuite mass spectrometric software is designed to provide free solutions to all these problems by providing the following features:

1.2 Feedback to the developers

We are always grateful to any constructive feedback from the users.

The MsXpertSuite software team might be contacted via the following addresses:

Figure 1: Adresses to send bug reports or questions to

1.3 Brief history of MsXpertSuite.

In response to the reviewers and for my personal project that I had started a little earlier, I decided to fully rewrite MineXpert into MineXpert. The new version of the software had to support MSn data.

1.4 Program and Documentation Availability and License

The programs and all the documentation that are shipped along with the MsXpertSuite software suite are available at http://www.msxpertsuite.org. Most of the time, a new version is published as source, and as binary install packages for (64-bit systems only). No binary packages are created outside of the autobuilder of the various distributions. As a Debian Developer, the author creates 3 packages that are uploaded on the distribution servers. These packages are available using the system’s software management infrastructure (like using the ‘s apt command, for example, or the graphical application).

The software and all the documentation are all provided under the Free Software license GNU General Public License, Version 3, or later, at your option. For an in-depth study of the Free Software philosphy, I kindly urge the reader to visit http://www.gnu.org/philosophy.

2 Generalities

In this chapter, I wish to introduce some general concepts around the MineXpert3 program and the way data elements are named in this manual and in the program.

A mass spectrometry experiment generally involves monitoring the m/z value of analytes injected in the mass spectrometer along a certain time duration. The m/z value of each detected analyte is recorded along with the corresponding signal intensity, so that a mass spectrum is nothing but a series of (m/z,i) pairs recorded along the acquisition duration. All along the acquisition, the precise moment at which a given analyte is detected (and its (m/z,i) pair is recorded), is called the retention time of that analyte (rt). This retention time is not to be misunderstood as the drift time of that analyte in an ion mobility mass spectrometry experiment.

2.1 Citing the MineXpert3 software

Please, cite the software using the following citation:

mineXpert2: Full-Depth Visualization and Exploration of MSn Mass Spectrometry Data. Olivier Langella and Filippo Rusconi. Journal of the American Society for Mass Spectrometry.(2021) 32 (4): 1138–1141.

2.2 General concepts and terminologies

Most generally, the mass spectrometer acquires an important number of spectra in, say, one second. But all these spectra are combined together, and, on the surface, the massist only sees a “slow” acquisition of 1  spectrum per second. This apparent slow acquisition rate is configurable. At the time of writing, generally 1  spectrum per second is recorded on disk. So, say we record mass spectra for 5 minutes, we would have recorded (5*60)  spectra.

2.3 Acquiring Mass Data Along Time: To Profile or Not To Profile?

As a mass spectrometry user, the reader of this manual certainly has used mass spectrometers where mass spectra are acquired and stored in different ways:

2.4 Mass Data Visualization: To Combine or Not To Combine?

In the previous section, we mentioned spectrum combination a number of times. What does that mean, that spectra are “combined” together into a single “combined spectrum”? Say we have 200  spectra that need to be combined together into a single spectrum that summatively represents the data of these 200  spectra.

First, a new spectrum would be allocated (result spectrum), entirely empty at first. Then, the very first spectrum of the 200  spectra is literally copied into that result spectrum. At this point the combination occurs, according to an iterative process that has the following steps:

At the end of the two nested loops above, the combined spectrum is still a single spectrum that represents— summatively— all the 200 spectra. This whole process is very computing-intensive, in particular if:

When a profile mode acquisition is performed, the user gets an innumerable number of distinct spectra, all appended to a single file. These unitary spectra are virtually unusable if an initial processing is not performed. This initial processing of the spectra is called “total ion current chromatogram calculation”.

What is it? Let’s say that the user has performed a profile mode mass spectrometry acquisition on the eluate of a chromatography column. Now, imagine that the spectrometer stores the mass data at a rate of one spectrum per second and that the chromatography gradient develops over 45  min: there would be a total of (45 * 60)  spectra in that file. The question is:

The conventional way of doing so is to load all the mass spectra and compute the “total ion current chromatogram” (the TIC chromatogram). The analogy with chromatography is evident: the TIC chromatogram is the same as the UV chromatogram unless optical density is not the physical property that is measured over time; instead, the amount of ions that are detected in the mass spectrometer is measured over time. That amount is actually the sum of the intensities of all the (m/z,i) pairs detected in each spectrum. When mass data are acquired during a chromatography run, often, the total ion current chromatogram mirrors (mimicks) the UV chromatogram5. For each retention time (rt) a TIC value is computed by summing the intensities of all the (m/z,i) pairs detected at that specific rt.

How is this total ion current chromatogram computed? This is an iterative process: from the first spectrum (retention time value 0  s), to the second spectrum (retention time value 1  s) up to the last spectrum (retention time 45  min), the program computes the sum of the intensities of all the spectrum’s (m/z,i) pairs. That computation ends up with a map that relates each rt value with the corresponding TIC value. The TIC chromatogram is nothing but a plot of the TIC values as a function of rt values. In that sense, it is indeed a chromatogram.

MineXpert3 works exactly in this way. When mass spectrometry data are loaded from a file, the TIC chromatogram is computed and displayed. This TIC chromatogram serves as the basis for the mass data exploration, as described in this manual. The TIC chromatogram serves as the basis for spectral combinations that can be performed in various ways—and not all formally combinations, which is why I prefer the term “integrations”. Some of these integrations are described below:

Note that the reverse actions are possible (and indeed necessary for a thorough data exploration): selecting a region of a mass spectrum and asking that the TIC chromatogram be reconstituted from there; or selecting a region of a drift spectrum and asking that the TIC chromatogram be reconstituted from there also. Finally, integrations may, of course, be performed from a mass spectrum to a drift spectrum, and reverse.

2.5 Examples of Various Mass Spectral Data Integrations

In the sections below, the inner workings of MineXpert3 are described for some exemplary mass data integrations. For example, when doing ion mobility mass spectrometry data exploration, it is essential to be able to characterize most finely the drift time of each and any analyte. Since each analyte is actually defined as one or more (m/z,i) pairs, it is essential to be able to ask questions like the following:

2.5.1 TIC -> MZ integration

What computation does actually MineXpert3 do when a mass spectrum is computed starting from a TIC chromatogram region, say between retention time rt  minute  7 and rt  minute  8.5?

  1. List all the mass spectra that were acquired between rt  7 and rt  8.5. In this spectral set, there might be many hundreds of spectra that match this criterion, if we think that, in ion mobility mass spectrometry, #asymp  200  spectra are acquired and stored individually every second (I mean it, every 1  s time lapse);

  2. Allocate a new empty spectrum— the “combined spectrum”— and copy into it without modification the first spectrum of the spectral set;

  3. Go to the next spectrum of the spectral set and iterate into each (m/z,i) pair:

+Iterate over all the remaining spectra of the spectral set and perform the steps for each spectrum.

MineXpert3 then displays the combined spectrum.

2.5.2 TIC -> DT integration

What computation does MineXpert3 actually do when a drift spectrum is computed starting from a given TIC chromatogram region, say between retention time rt  minute  7 and rt  minute  8.5?

What is a drift spectrum? A drift spectrum (mobilogram) is a plot where the cumulated ion current of the detected ions is plotted against the drift time at which they were detected. Let’s see how that computation is handled in MineXpert3:

  1. Create a map to store all the (drift time, intensity) pairs that are to be computed below, the (dt,i) map;

  2. List all the mass spectra that were acquired between rt  7 and rt  8.5. The obtained list of mass spectra is called the “spectral set” ;

  3. Go to the first spectrum of the spectral set and compute its TIC value (sum of all the intensities of all the (m/z,i) pairs of that spectrum). Get the drift time value at which this mass spectrum was acquired. We thus have a value pair: (dt, i), that is, for drift time dt, the intensity of the total ion current is i

    At this point, we need to do a short digression: we saw earlier that, at the time of this writing, one of the commercial instruments on which the author of these lines does his experiments stores 200  spectra each second. These 200  spectra actually correspond to the way the drift cycle is divided into 200  bins (time bins). That means that in the retention time range [7– 8.5], there are (1.5*60) complete drift cycles. And thus there are (1.5*60) spectra with drift time  x, the same amount of spectra with drift time  y, and so on for the reminaing 198  time bins. Of course, a large number of these spectra might be almost empty, but these spectra are there and we need to cope with them.

    The paragraph above must thus lead to one interrogation about the current (dt,i) pair: —“Has the current dt value be seen before, during the previous iterations in this loop?”. If not, then create the (dt, i) pair and add it to the (dt,i) map; if yes, get the dt element in the map and increment its intensity value by the TIC value computed above;

  4. Iterate over all the remaining spectra of the spectral set and perform the steps for each spectrum.

At the end of the loop above, we get a map in which each item relates a given drift time with a TIC value. This can be understood this way: —“For each drift time value, what is the accumulated ion current of all the ions having that specific drift time?”.

At this point, MineXpert3 displays the drift spectrum (ion mobility spectrum, or mobilogram).

2.5.3 Using multiple threads during mass data integrations

Whenever the computer has multiple threads available for the integrations to be performed using parallel execution, MineXpert3 manages to use all these available threads. It is possible to limit the number of threads used for the integration computations as described in the Preferences⇨Set max. thread count menu at Section 4.3 – The Main Program Window Menu.

2.6 Installation of the software

The installation material is available at msxpertsuite.org.

2.6.1 Installation on MS  Windows

The installation of the software is extremely easy on the platforms. The installation program are standard and require no explanation.

2.6.2 Installation on Debian- and Ubuntu-based systems

The installation on Debian- and Ubuntu-based GNU/Linux platforms is also extremely easy (even more than in the above situations). MineXpert3 is indeed packaged and released in the official distribution repositories of these distributions and the only command to run to install it is:

sudo apt install<package_name>

In the command above, the typical <package_name> is in the form minexpert3 for the program package and minexpert3-doc for the user manual package.

Once the package has been installed, the program shows up in the Science menu. It can also be launched from the shell using the following command:

minexpert3

2.7 Building the software from source

The MineXpert3 software build is under the control of the build system. There are a number of dependencies to install prior to trying to build the software, as described below.

2.7.1 The dependencies required to build MineXpert3

The dependencies to be installed are listed here with package names matching the packages that are in . In other RPM-based software, most often the package names are similar, albeit with some slight differences.

2.7.2 Getting the source tarball

The source tarball is available for the following internation Git repositories:

In both websites above, select the sub-project and search for the download menu right next to the top of the file system view of the code (ellipsis or hamburger menu). Choose the format of the archive to be downloaded.

2.7.2.1 Using Git

The rather convoluted command below only downloads the branch of interest. The whole Git repos is very large...

git clone --branchmaster/7.3.0-1 --single-branch minexpert3-7.3.0

2.7.3 Building of the software

Change directory:

cd minexpert3-7.3.0

Create a build directory:

mkdir build

Change directory:

cd build

Configure the build:

cmake ../ -DCMAKE_BUILD_TYPE=Release

Build the software:

make

3 Configuring the application preferences

A large application like MineXpert has lots of configurable options. The Application preferences window described in this chapter is the central place for these customizations. To enter the application preferences window, select Preferences⇨Edit preferences, which opens the window at Figure 2 – Application preferences window.

3.1 The application preferences window

Figure 2: Application preferences window

3.2 Setting the general options

As shown in Figure 3 – Application preferences - General page the general options encompass the following notions:

Figure 3: Application preferences - General page

3.3 Setting the shortcuts

As shown in Figure 4 – Application preferences - Shortcuts page it is possible to configure the shortcuts for a large number of tasks throughout the application.

Figure 4: Application preferences - Shortcuts page

The shortcuts can be configured by double-clicking the item of interest in the cell of the Shortcut column and then entering the desired shortcut. Then simply click somewhere else. When all the shortcuts have been configured, click the button labeled Apply and restart the program.

3.4 Setting the recording of the discoveries

As shown in Figure 5 – Application preferences - Discoveries page it is possible to configure the way discoveries are stored.

Figure 5: Application preferences - Discoveries page

The detailed configuration of the discoveries storage is described in Section 10 – Recording data exploration discoveries.

4 The program’s graphical user interface

Data exploration, in mass spectrometry, entails, for a large part, the relentless scrutiny of the mass spectra by an expert eye. Without a powerful mass spectrum viewer, capable of numerous data display modes, the expert eye remains powerless. In this chapter, the graphical user interface is described in detail, starting from the opening of a mass spectrometry data file, to the navigation through all the data depth within a large set of graphical representations of the data.

4.1 Opening Mass Spectrometry Data Files

To start a session, open one or more mass spectra using the menu File⇨Open mass spectrum file(s) fully in memory. MineXpert understands the mzML, mzXML and MGF formats. The file loading procedures, for these formats, are delegated to the excellent libpwiz library from the project.6 Simple txt, asc data where m/z and intensity values are separated by any character that is neither a newline nor a dot nor a digit (loading is handled by a private parser) can be loaded either from file or directly from the clipboard (menu File⇨Load mass spectrum from clipboard).

The successful line of instruments from produces huge mass spectrometry data files. We provide the user with a mechanism to probe the data and configure the way they should be loaded. When MineXpert detects that such a file is being loaded, it first probes the complexity of the data in it and opens the dialog window shown in Figure 6 – Probing the specific MS runs.

Figure 6: Probing the specific MS runs

There are two actions that can be triggered from the dialog window:

There are two variants of the mass spectrometry file opening menu: one for which the mass data are read from file and stored totally in memory and one for which the mass data are read from file in streamed mode, used to compute the TIC chromatogram and discarded (menu File⇨Load mass spectrum file in stream). The latter mode is useful when the mass data are so large that they cannot fit in memory. Optionally, a table view can be displayed with all the data in the MS run data set that was loaded from disk. The TIC chromatogram or the table view can then be used to access the mass data in the file according to criteria set by the user (retention time range, for example).

4.2 The Window Layout

The graphical interface comprises a number of windows where data and informations are displayed. When first started, the program shows the main program window. Upon loading of a MS run data set from file, new windows do show up as described below (see Figure 7 – General View of the Graphical User Interface):

Figure 7: General View of the Graphical User Interface

4.3 The Main Program Window Menu

The menu bar in the main program window displays a number of menu items, reviewed below:

4.4 The Loaded MS Run Data Sets

Each time a new MS run data set is loaded from disk or from clipboard, a corresponding MS run data set item is added to the Open MS run data sets dialog window (see Figure 8 – The open MS run data sets).

Figure 8: The open MS run data sets

One of the most useful menu items available from the drop-down menu of Figure 8 – The open MS run data sets is the Show MS run data set table view item. That menu item triggers the display of a window containing a table view, like in a spreadsheet, that shows the data of each scan contained in the MS run data set loaded from file. This window is described in the following section (see Figure 9 – The table view-based scrutiny of one MS run data set).

4.5 Mass Spectral Data Listing in a Table View

From the Open MS run data sets dialog window, it is possible to select one list widget item corresponding to the data set of interest and select the Show MS run data set table view menu item that opens the MS run data set table view window shown in Figure 9 – The table view-based scrutiny of one MS run data set.

Figure 9: The table view-based scrutiny of one MS run data set

The data that belong to each spectrum in the acquired mass spectral data set are shown as values in dedicated columns. Each row represents a mass spectrum of the data set. There might be tens of thousands spectra in an acquisition. Note that two columns may contain -separated values. These columns are Prec. #mz; and Prec.z, respectively precursor ion m/z and precursor ion charge. Ions of differing m/z values and of differing charge values might be accumulated in a trap and then fragmented in a single fragmentation step. The mass data file thus contains spectra with a list of selected precursor ions.

In the MS run data set table view window, the checkable group box labelled Filtering options allows one to open a series of widgets in which to set the values for various filtering criteria.

The general syntax used to fill-in the filtering options is according to the following scheme:

Once the filtering values have been entered and validated by clicking “Execute filtering” or by keying-in , the items (that is, the table rows) that verified the filter—still present in the table view—might be selected (all of them or only some of them) for their integration to a variety of destinations. The destination of each integration is selected by clicking the proper icon push button from the button row below. The meaning of these push buttons will be described later (see Section 4.7.2 – The Right Column of Buttons Configures the New Integration to Run).

The user might enter as many filtering criteria as necessary to pin point the most elusive feature in the mass spectral data set. In Figure 10 – Mass spectral data set filtering using combined criteria, the user has filtered the data to retain MS3 mass spectra obtained by fragmenting ions of a given m/z value using a specified tolerance for the m/z match in Dalton units.

Figure 10: Mass spectral data set filtering using combined criteria

4.6 The Main Data-Plotting Windows

This section will succinctly describe the main data windows of MineXpert. Each window will be described in greater detail when the features of the program will be described.

As visible in all the figures of the plot widget-containing windows described in the next sections, the general structure of these windows is to have a menu in the toolbar, icon buttons in that same toolbar and then plot widgets stacked below in the order in which they have been created.

The window main menu (hamburger menu) offers menus that are all self-explanatory. The tool bar sports two buttons that:

4.6.1 The TIC Chromatogram Window

Each time a new mass spectrum file is loaded, its corresponding TIC chromatogram is computed and then displayed in a new plot widget in the TIC/XIC chromatogram window Figure 11 – The total ion current (TIC) chromatogram window. That window is indeed specialized in the plotting of TIC or XIC chromatograms. Each new TIC chromatogram plot that is generated as a result of the loading of a mass spectrometry data file is plotted using a new color. That color encodes the filiation of the whole set of plots that are generated while performing various integrations starting from that initial TIC chromatogram plot. For example, a red TIC chromatogram plot that serves as the starting point for a mass spectrum integration triggers the creation of a new mass spectrum trace plot that is plotted in red color. For colormap windows, where there is not trace plot, the axis and tick labels of the plot are of the same color as that of the initial TIC chromatogram plot.

Figure 11: The total ion current (TIC) chromatogram window

4.6.2 The Mass Spectrum Window

The mass spectrum window is specialized with the plotting of mass spectra. It thus contains all the plot widgets that display all the mass spectra that were created as a result of mass spectral data integrations. These integration might have originated in any plot widget of any kind (mass spectrum, drift spectrum, colormap, for example). For example, the user might select a region in a TIC chromatogram and then ask that a mass spectrum integration be computed. In this case, the resulting mass spectrum is displayed in a new plot widget that is located in the mass spectrum window (Figure 12 – The mass spectrum window).

Figure 12: The mass spectrum window

4.6.3 The Drift Spectrum Window

As described for the mass spectrum window, the drift spectrum window contains all the plot widgets that display drift spectra (Figure 13 – The drift spectrum window).

Figure 13: The drift spectrum window

4.6.4 The Retention Time vs Mass Spectrum Color Map Window

The int = f(rt, m/z) colormap window displays a heat map relating all the retention time values with the corresponding mass spectra (see Figure 14 – The int = f(rt, m/z) colormap window). The tool bar sports one more menu to transpose the axes of the all the color map plots contained in the widgets that are pinned-down.

Figure 14: The int = f(rt, m/z) colormap window

4.6.5 The Drift Time vs Mass Spectrum Color Map Window

The int = f(dt, m/z) colormap window displays a heat map relating all the drift time values with the corresponding mass spectra (see Figure 15 – The int = f(dt, m/z) colormap window).

Figure 15: The int = f(dt, m/z) colormap window

4.6.6 The Drift Time vs Retention Time Color Map Window

The int = f(rt, dt) colormap window displays a heat map relating all the drift time values with the corresponding retention time values (see Figure 16 – The int = f(rt, dt) colormap window).

Figure 16: The int = f(rt, dt) colormap window

4.6.7 Exploring data in multiple plot widgets

When comparing plots (be them trace plots or colormap plots), it is often necessary to align the plots according to the x-axis so as to align features of interest in the various vertically-stacked plot widgets. In such a situation, there is now way to move the cursor through all the plots simultaneously so as to read the x-axis value while marking that position with the crosshair cursor. To enable a vertical mark over all the aligned features in all the plot widgets, click the Figure 17 – Activation of the vertical rule icon.

Figure 17: Activation of the vertical rule

If the x-axis range is locked (when first toolbar button in Figure 17 – Activation of the vertical rule with two-arrow-headed red horizontal line is checked) and the vertical rule button is checked also, the vertical slide rule continuously updates the x-axis value near the slider handle. See Figure 18 – Using the vertical rule across all the plot widgets for an illustration.

Figure 18: Using the vertical rule across all the plot widgets

4.7 General Structure of the Plot Widgets

The TIC/XIC chromatograms, mass spectra, drift spectra, retention time vs mass spectrum and drift time vs mass spectrum colormap windows (collectively called plot widget windows) are all structured in a similar way as described below.

Figure 19: Description of the various widgets that make a composite plot widget

The window in Figure 19 – Description of the various widgets that make a composite plot widget contains a single composite plot widget delimited in the figure by a light blue rectangle. Each composite plot widget’s plotting area is sided by two columns of icons, which really are, for most of them, check buttons. The buttons in the left column configure if and how this plot widget is going to be the receiving container of a new integration result (result that takes the form of a graph plot, in contrast to a colormap plot). The buttons in the right column configure what kind of integration is to be performed using, as a starting point, one of the plots of this plot widget. Indeed, as already mentioned above, integrations in any plot widget might be configured to generate any kind of data: a XIC chromatogram, a mass or drift spectrum... If the data generated by a given integration constitute a XIC chromatogram, that chromatogram will be plotted in the TIC/XIC chromatograms window.

Both columns of buttons (left and right) are detailed in the next section because these constitute the basis of the operation of MineXpert.

4.7.1 The Left Column of Buttons Configures the Reception of New Data

For this description, we will assume that the user is working in the TIX/XIC chromatograms, window and is performing a new integration to a mass spectrum. The result of that new integration is thus data that need to be installed in the Mass spectra window, as depicted in Figure 19 – Description of the various widgets that make a composite plot widget. Such a window, however, might already contain a number of plot widgets; it is thus necessary to establish where the new plot is going to be created and how it will be created. These two questions are answered in detail below by describing the widgets in the left column of widgets in a composite plot widget.

4.7.2 The Right Column of Buttons Configures the New Integration to Run

Each composite plot widget may contain zero or more plots (also called graphs or bars, depending on the kind of data). As mentioned earlier, any plot can serve as the starting point for a new integration to the same or another kind of data. For example, from a plot in the TIC/XIC chromatograms window, one might want to integrate a given retention time range to a mass spectrum or to a drift spectrum. How are those destinations determined? The destination of an integration is selected by pressing one of the buttons in the right column of check buttons described below.

4.7.3 The Composite Plot Widget Main Menu

There are two kinds of composite plot widgets:

In the two cases above, the composite plot widget menu is not the same because the features of the plots are not the same.

4.7.3.1 The Graph|Bars Composite Plot Widget Main Menu

The graph or bars plot widgets can host any number of plots, be them ion mobility or mass spectra, TIC|XIC chromatograms or centroided mass spectra. A graph (or trace) plot is a curve-type plot, that is, a two-dimensional where the data points are connected to each others by a line which draws the curve. A bars plot is a plot where each data point stands on its own in the plot as a bar. The typical bars plot is a centroided mass spectrum plot. In any of these two plot types, the ordinate value is an intensity value for the given abscissae value (be it a m/z, a dt, or a rt value).

The main composite plot widget’s menu is described in Figure 21 – Trace plot widget main menu.

Figure 21: Trace plot widget main menu

4.7.3.2 The Color Map Composite Plot Widget Main Menu

The processes described in this section are also described at Section 5.4 – Signal Enhancement and Noise Reduction in Color Map Plots.

The colormap composite plot widgets can host only one colormap plot since it is not possible to overlay another colormap onto an existing colormap. A colormap is a raster-type graph, that is, a bitmap image of which the third dimension is the intensity of the pixel at any given position in the image. That intensity is represented as a color. The colormap plots all share the same main plot widget menu that is significantly different than the menu available in graph|bars composite plot widgets.

Figure 28: Colormap composite plot widget main menu

4.8 General Operation of the Plot Widgets

All the plot widget-containing windows, like the TIC/XIC chromatograms, Mass spectra and Drift spectra windows, all contain plot widgets that have a general working scheme for the way the plotted data can be visualized and the various plots are managed.

4.8.1 General Data Exploration Methods

The main visualization operations are described below. The following convention will be used to describe the mouse buttons:

The different plot or colormap graph visualization methods are detailed below:

4.8.2 Locking All the Composite Plot Widgets Views on X and/or Y Axes

The tool bar located at the top of all the plot widget-containing windows contains buttons to configure the locking of the X and/or Y axes so that all the plot widgets are synchronizedo over the axis of interest:

Figure 33: Plot window tool bar

4.8.3 Checking for Precise Alignment of Features Across Composite Plot Widgets

It very often happens that one wants to ensure a given feature is located precisely at the same X-axis position in a number of plots of a plot window. To ease this process, one triggers the third button in Figure 33 – Plot window tool bar, which shows the rule visible at Figure 34 – The vertical rule marker spans the whole window.

Figure 34: The vertical rule marker spans the whole window

4.8.4 General Plot Management in the Composite Plot Widgets

Each time a new plot is created in a composite plot widget, a menu item is made available in the Plot list submenu of the main menu. This is shown in Figure 35 – Plot management inside a composite plot widget.

Figure 35: Plot management inside a composite plot widget

5 Mass Data Integrations Featured by MineXpert

Analyzing mass spectrometric data (with or without drift data) usually involves performing various data integrations in sequence. We saw earlier that upon loading a mass spectrometry data file, the first data visualization that becomes available is the TIC chromatogram. Then, the user might ask to show the MS run data set table view (see Figure 9 – The table view-based scrutiny of one MS run data set). Thus, the TIC chromatogram and the table view are both starting points for the mass spectrometric data exploration. Once a number of mass data integrations have been performed, new integrations will be av ailable in any direction, by selecting the integration type in the plot widget (see Section 4.7.2 – The Right Column of Buttons Configures the New Integration to Run).

Regarding the parallel execution of mass spectral integrations, please see Section 2.5.3 – Using multiple threads during mass data integrations.

5.1 General Behaviour of Plot Widgets

There are patterns, in the way mass spectral data integrations can be configured, that are common to all plot widgets. These common patterns are described in the next sections. First, however, the Processing Flow concept needs to be described, as it serves as the basis for the integration configurations.

5.1.1 Processing Flow Entities Document all Integrations

Each time an integration is performed, MineXpert stores processing metadata that permits to characterize the integration for later internal reuse. Any integration, as it is performed, documents itself to the Processing Flow. For example, one integration might be from TIC chromatogram to mass spectrum, another integration can be from mass spectrum to ion mobility spectrum. These kinds of integration are documented as Processing Types. For each integration, there is thus a source data type and a destination data type. But this is not sufficient to document precisely the integration: there must be other metadata along with the integration source and destination data types. When integrating from TIC chromatogram to mass spectrum, the user might select only a region of interest in the TIC chromatogram. That is another kind of metadata that has to be documented: the source data range (in this case a retention time range). Likewise, when integrating from a mass spectrum to a drift spectrum, the origin is a m/z range and the destination is a drift spectrum. Other metadata are stored in the processing flow data, like the fragmentation specification—if any has been set—and the m/z integration parameters, in case the integration produces a mass spectrum.

Together, all the processing flow metadata are stored in what are called Processing Flow instances. A processing flow instance can contain a default MSn fragmentation specification and/or default m/z integration parameters. It can contain any number of Processing Step instances that in turn can contain any number of Processing Spec instances. Like for the processing flow, each processing step can contain a MSn fragmentation specification and/or m/z integration parameters.

How is the processing flow documented? When a mass spectrometry data file is loaded from disk, MineXpert iterates in all the mass spectra of the MS run data set and computes a TIC chromatogram. That TIC chromatogram is displayed in the TIC/XIC chromatograms window. At this point, no MSn fragmentation specification is set and no m/z integration parameters are set. When the user starts exploring the data, their first integration will determine how the processing flow will be filled-in with details about that integration.

If an integration is performed from the TIC chromatogram to a mass spectrum, then m/z integration parameters will necessarily be used. Either the user has configured these parameters (Section 5.1.3 – Setting the m/z Integration Parameters) and they will be used to perform the mass spectral combinations, or default values will be used (these default values are crafted from the statistical analysis of the whole MS run data set). The processing step that is created to document this specific integration will thus document the m/z integration parameters that have been used for the mass spectra combination. That processing step is added to the processing flow that documents the whole integration process. The plot that is created in the Mass spectra window will have, associated to it, that processing flow. Think of the Processing Flow as a pedigree ID card that each plot has associated to it. That pedigree gets incremented with new processing steps each time an integration is chained to the previous integrations.

See Section 9 – The Processing Flow in a Data Exploration Session for a detailed description of the Processing flow concept.

5.1.2 Setting the MSn Fragmentation Parameters

At any moment is it possible to set the MSn integration parameters by selecting the Open MS fragmentation dialog menu item from the plot widget main menu (Section 4.7.3 – The Composite Plot Widget Main Menu).

Figure 36: Setting the MSn fragmentation parameters

The dialog window that is displayed is depicted in Figure 36 – Setting the MSn fragmentation parameters. The available settings are explained below:

There is a shortcut to the MSn fragmentation MS level in each composite plot widget, as shown below, where the spin box widget on top of the right hand side column of allows one to set the MS level.

Figure 37: Shortcut to the fragmentation MS level setting

5.1.3 Setting the m/z Integration Parameters

The m/z integration parameters are only compulsorily used in case an integration will produce a mass spectrum or a colormap involving m/z data in any one of the two dimensions. Indeed, these parameters are required to configure the way mass spectra are combined together into a single product mass spectrum.

An integration to a mass spectrum occurs when the user -selects a range in a given plot while the checkbutton is checked. Integrations to a mass spectrum can be elicited from any plot.

Very rarely can one perform an integration to a mass spectrum without having to first configure the way the m/z values are binned into the combination spectrum. The determination of the best m/z integration parameters is a process that might be required each time a new data set comes from an instrument from which no data have been obtained before. Indeed, there is a vast number of different mass spectral data acquisition/storage modes that depend on the vendors or on the mass spectrometer models. In general, this diversity of mass spectral data files9 creates difficulties in the mass spectra integrations, as shown below in Figure 38 – Unusable combination spectrum without binning.

Figure 38: Unusable combination spectrum without binning

In this combination mass spectrum, computed without binning from Lumos Orbitrap-originating data, three peaks that belong to an isotopic cluster appear to be made from a large number of “sub-peaks”. This is due to the fact that the number of decimals for the m/z values in the data file is so high that a single isotopic peak appears as a large set of sub-peaks. While the isotopic cluster’s peaks are “readable” below their shape, the signal in this mass spectrum is almost totally useless. This is a perfect illustration of the necessity of data binning in the combination spectrum when integrating mass spectral data to a mass spectrum.

Figure 39: The m/z integration parameters window

MineXpert provides a number of ways to configure mass spectral combinations such that the obtained mass spectrum is usable. The m/z integration parameters that might be set are described in the following sections. The window depicted in Figure 39 – The m/z integration parameters window can be displayed from any plot widget menu using the Open the m/z integration params dialog menu item (see Section 4.7.3 – The Composite Plot Widget Main Menu).

When all the parameters have been set, click onto Apply button or key in . At this point the next integrations started from the plot widget in which these m/z integration parameters were set will be performed using the settings. These parameters will propagate to all the descendant widgets. It will be possible, at any moment and in any widget, to modify the parameters again.

5.1.4 Step-by-step Determination of the Best m/z Integration Parameters

This section provides guidelines on the best way to determine the m/z integration parameters that will result in nicely shaped mass peaks in the combination mass spectrum. There might be situations where there is no need to set the m/z integration parameters, typically if the mass data have been properly binned by the software running the mass spectral data acquisition ( and systems often provide nicely binned mass spectra).

However, in a vast majority of the cases, proper setting of the m/z integration parameters will be essential to achieve a combination of mass spectra resulting in a useful mass spectrum. In particular, it is important to grasp that the binning might need to be dynamically set while combining (m/z,i) pairs along the m/z axis. This dynamic binning is configured by choosing either res or ppm (for resolving power or part-per-million, respectively; bins have varying sizes across the whole m/z range).

When dealing with a mass spectrometry data set from an instrument that is unknown, the first step is to perform an integration to a mass spectrum without binning. In this situation, all the distinct m/z data points observed in all the mass spectra being combined together are going to be stored in the combination spectrum. When the data come from an instrument that does not produce nicely binned mass spectra, the resulting combination mass spectrum might be highly spiky, with spurious data points interspersed between seemingly correct data points. This is typically visible in the top mass spectrum shown in Figure 40 – Determination of the best m/z integration parameters for integration to mass spectra.

Figure 40: Determination of the best m/z integration parameters for integration to mass spectra

The different plots in the figure show the mass spectral data combined for the same acquisition data and for the same retention time range. From top to bottom:

Figure 41: Estimating the resolving power of a mass spectral acquisition
Figure 42: Determination of the ion charge by using the isotopic cluster

One important concept to grasp is that the bin size used for the mass spectra combinations will actually determine the final resolution of the mass spectrum (or colormap). For example, imagine that the setting is the following: Arbitrary binning with bin size of 1 Da in that case the mass spectrum or the m/z-based colormap will be very rough. Instead, setting the bin size to 0.05 will provide a much better spectrum (or colormap). Of course, going down with the size of the bins will increase almost linearly the computation time required to go through them all while adding signal from the various spectra that are being combined. This is exemplified in Figure 43 – Effects of the bin size on the colormap involving one m/z dimension.

Figure 43: Effects of the bin size on the colormap involving one m/z dimension

5.1.5 Removing 0-intensity m/z data points is useful

Mass spectrum data points with an intensity value equal to 0 might arise either from the initial data, as read from the file, or from the binning process, as detailed below.

When bins are prepared, prior to starting a mass spectral combination operation, they all correspond to a m/z value associated to a 0-value intensity. Once the bins have been prepared, the combination starts and, while iterating through all the data points of all the spectra, fills-in the bins. If, however, a bin is never filled (it ends up never having been updated during the combination), that bin will have an intensity of 0. Bins having a 0-intensity value have a bad effect on the result mass spectrum. Removing them by setting the Remove 0-value data points parameter proves beneficial, as shown in Figure 44 – Removing 0-intensity data points. When the 0-intensity data points are not removed (upper spectrum), the signal is deteriorated by spurious inverted spikes. Removal of the 0-intensity data points, cleans the trace perfectly.

Figure 44: Removing 0-intensity data points

5.1.6 Savitzky-Golay Filtering of Any Kind of Data

The Savitzky-Golay filtering method is widely known for its effectiveness in removing noise from mass spectral data.

It is possible to apply that filter to any plot by selecting the corresponding menus as described at Figure 45 – Menus to configure and run the Savitzky-Golay filter to smooth traces. The Savitzky-Golay parameters can be set by selecting the Configure Savitzky-Golay smoothing filter menu as shown on Figure 45 – Menus to configure and run the Savitzky-Golay filter to smooth traces.

Figure 45: Menus to configure and run the Savitzky-Golay filter to smooth traces

The Savitzky-Golay filter requires careful configuration. The configuration provided by default is shown in Figure 46 – Configuration of the Savitzky-Golay filter to smooth traces.

Figure 46: Configuration of the Savitzky-Golay filter to smooth traces

5.2 Various Mass Spectral Data Integrations

Now that the configuration patterns common to all plot widgets have been described, the various mass spectral data integrations can be reviewed.

Figure 47: Integrating mass data from a TIC chromatogram to a mass spectrum

As seen on the figure above, the region defined by the -click-dragging operation is delimited by arrows, a green marker at the start and a red marker at the end. The arrows at the ends of the horizontal line allow one to make the difference between an integration selection and a simple distance-measuring selection (detailed at Section 7 – Mass Spectral Deconvolutions).

5.2.1 Considerations on the Diversity of Mass Data Contents

Loading data from mass data files in mzML format does not guarantee that the data will be of the same kind when they originate from different mass spectrometers. For example, data from Orbitrap mass spectrometers have the following characteristics:

This is the output of the statistical analysis of the data loaded from a Lumos Orbitrap-originating file:

Spectral data set statistics:
Total number of spectra: 6203
Average of spectrum size: 391.311946
StdDev of spectrum size: 168.062934
Mininum m/z value: 400.007111
Average of first m/z value: 401.448935
StdDev of first m/z value: 1.590049
Maximum m/z value: 1999.928589
Average of last m/z value: 1901.852315
StdDev of last m/z value: 45.864131
Minimum m/z shift: -0.344452
Maximum m/z shift: 0.000000
Average of m/z shift: 1.097372
StdDev of m/z shift: 1.590049
Smallest Delta of m/z (step): 0.006195
Average of smallest Delta of m/z (step): 0.023757
StdDev of smallest Delta of m/z (step): 0.013179
Greatest Delta of m/z (step): 405.356934
Average of greatest Delta of m/z (step): 163.112057
StdDev of greatest Delta of m/z (step): 75.947334

As mentioned earlier, the most interesting bit of information is in the line reproduced below:

Smallest Delta of m/z (step): 0.006195

That 0.0062 value somehow gives an indication of the “definition” of the spectrum, that is, the smallest distance possible between two consecutive points in the m/z-axis.

In general, the fact that the spectra of an acquisition do not all have the same m/z vector as the m/z-axis is a great difficulty for mass spectral integration because it requires setting up binning prior to performing the mass spectral combination. That binning is nothing else than crafting a m/z value vector able to receive the intensities of all the m/z data points in the spectra to be combined. These concepts are developed in the next paragraph and have also been reviewed at Section 5.1.3 – Setting the m/z Integration Parameters.

5.2.2 Statistical Analysis of Mass Data

At the end of the data file loading, MineXpert performs a rudimentary statistical analysis of the data. The main datum of interest is the smallest m/z step that is observed in the whole set of mass data loaded from disk (the mass spectrum list, that can hold mass spectra in the tens of thousands). For each mass spectrum in the list, the smallest m/z delta between any two consecutive data points is recorded. Then, the smallest ever m/z delta value is sought amidst all the recorded values. Intuitively, that smallest m/z delta value provides an idea of the resolution power of the instrument that generated the mass spectra. Interestingly, this is not the proper value to configure binning. The best value is the median value of the smallest m/z delta values encountered over all the mass spectra of the data file. It is the value that is suggested by default to arbitrarily construct the bins during an integration to a mass spectrum, as described in Figure 39 – The m/z integration parameters window (Arbitrary binning value with bin size unit dalton).

5.3 Integrations Originating in Color Map Plots

There are two different kinds of plots: the graph or bars plots (spectra, centroids,for example) and the “colormap plots”. TIC chromatograms, mass spectra and ion mobility spectra are trace plots. Colormap plots do plot intensity values as colors for pairs of data, like mass spectra as a function of retention times or ion mobility, or retention times as a function of ion mobility.

When an integration starts from a graph plot, the integration region selection (with a right-button mouse drag operation) of a given plot range (over the X axis) can be performed without drawing a rectangle over the region of interest. Indeed, only the X axis is the criterion for the selection of the region of interest. When an integration starts from a colormap plot, the second dimension (the Y axis) has a meaning for the selection of the region of interest. In colormap plots, the selection region has to be bi-dimensional, that is, not a horizontal line, but a real rectangle over both the X and the Y axes.

By default, the rectangle that is drawn upon mouse dragging is a real rectangle, that is, a four-square-corner polygon. There are a number of situations, however, where the user might want to select a non-rectangle region, like if the rectangle were skewed. This is illustrated in Figure 51 – Integrations from a colormap plot using a skewed selection rectangle (last step)

Drawing a skewed selection rectangle is a two-step process. One first draws the base of the rectangle, as usual, with a horizontal-only mouse drag movement (see Figure 50 – Integrations from a colormap plot using a skewed selection rectangle (first step)). When the base of the rectangle has the right width, the user presses the keyboard key. Pressing that keyboard key triggers the definition of the width of the skewed selection rectangle, that gets stored in memory.

Figure 50: Integrations from a colormap plot using a skewed selection rectangle (first step)

When the mouse drag operation draws the actual two-dimensional polygon (by dragging the mouse cursor also along the Y axis), the user maintains the keyboard key pressed. Maintaing that key pressed has the effect of switching the drawing of a conventional four-square-corner selection rectangle into a skewed selection rectangle (see Figure 51 – Integrations from a colormap plot using a skewed selection rectangle (last step)).

Figure 51: Integrations from a colormap plot using a skewed selection rectangle (last step)

When the mouse right-button is released, the integration computation is started that involves checking if the points that are processed are indeed contained inside the skewed selection rectangle. The result is shown in Figure 52 – Integrations from a colormap plot using a skewed selection rectangle (result).

Figure 52: Integrations from a colormap plot using a skewed selection rectangle (result)

5.4 Signal Enhancement and Noise Reduction in Color Map Plots

The processes described in this section have been mentioned at Section 4.7.3.2 – The Color Map Composite Plot Widget Main Menu.

The signal obtained in ion mobility–mass spectrometry experiments may be of too little dynamics, which hamper proper visualization of details. One solution is to run a Z axis scale (the axis holding intensity values) conversion from linear scale to log10 scale (see Figure 30 – Colormap plot widget main menu). While this has the benefit of highlighting details, it also has the drawback of potently enhancing noise. As of version 8.1.0, MineXpert provides means to signal-to-noise ratio tweaking as detailed below.

There are two different approaches to signal-to-noise ratio enhancement:

Figure 53: Example of signal-to-noise ratio enhancement

5.5 Low Intensity Signal Removal in Traces

Any trace (that is, any plot that is not a colormap) can be noisy. That is particularly true for mass spectra coming from non-Orbitrap analyzers. If one can tell what is the level of the noise, it is possible to remove all the peaks that are below that level. The process is complex because it needs to take into account ever-more frequent high resolution mass spectrometry data that shows resolved isotopic cluster for which certains peaks might be below the threshold while others are above threshold. Of course, if any peak of an isotopic cluster is above threshold, then the whole isotopic cluster, no matter how it might comprise below-threshold peaks, should be retained.

At the time of this writing, the low intensity signal removal filter is working best for samples containing large analytes, where the isotopic cluster is most approaching an overall Gaussian shape. It is considered that this feature is still experimental as it still has a number of rough edges. The step are described in the following figures (see Figure 55 – Example of low intensity signal removal (configuration)).

Figure 54: Example of low intensity signal removal (starting trace)
Figure 55: Example of low intensity signal removal (configuration)
Figure 56: Example of low intensity signal removal (creation of a new trace)
Figure 57: Example of low intensity signal removal (display of the new trace)

5.6 Chained Integrations

The user, in the process of exploring the data, will inevitably chain integrations to pinpoint a specific feature of interest. For example, let’s say that the user is exploring ion mobility mass spectrometry data.10 After having loaded the data file, the TIC chromatogram is computed and displayed. From there, it is possible to perform a TIC chromatogram to an intensity = f(dt,m/z) colormap integration (see Figure 15 – The int = f(dt, m/z) colormap window.)

Figure 58: Example of chained integrations, colormap where data exploration may start

There starts the exploration. The user sees that there are a number of species having discrete drift times at the m/z ratio around 1220 (lower region of the colormap). They thus integrate to a single drift spectrum that horizontal lower region of the colormap. The obtained drift spectrum is shown at the left hand side of Figure 59 – Multiple chained integrations.

Because there are five drift peaks in the drift spectrum, the user performs as many individual mass data integrations to a mass spectrum, from left to right. The obtained mass spectra are all shown in the window next to the Drift spectra window of the same figure.

Figure 59: Multiple chained integrations

Most interestingly, the various drift regions are integrated to almost identical m/z values in their respective mass spectrum. In order to know when the various molecular species eluted in the chromatogram, the user performs for each mass spectrum an integration to a XIC chromatogram. The XIC chromatograms are shown on the window next to the Mass spectra window. Visibly, each molecular species was eluting from the chromatography column at discrete retention times (this was clearly not a true chromatography but instead an infusion during which instrument parameters were changed to modify the mobility properties of the ubiquitin molecule).

At this point, it is interesting to confirm that each XIC chromatogram contains exactly the molecular species that were responsible for the appearance of the purple “bands” on the int = f(dt, m/z) initial colormap. The different XIC chromatograms are thus integrated to a colormap and the results are shown below the initial colormap (less one colormap that did not fit in the window). Visibly, the extracted colormaps reconstitute the initial pattern visible at the top of the Drift spec / mass spec colormaps window.

5.7 Multi-widget Intensity Integrations

It happens pretty often, when doing quantitative mass spectra data analyses, that intensity integrations are desirable for a set of available mass spectra.

Typically, this would be the case when assessing the quantitative differences between a number of samples, the mass spectral data of which have been integrated to mass spectra.

To perform an intensity integration for multiple composite plot widgets, first pin down the widgets of interest (see here for an explanation about pinning down composite plot widgets), ensure that there is either only one trace in each one of them or the trace of interest is selected and perform the integration as usual in any one of the composite widets, but with the keyboard key pressed all along. The integration results will be printed to the console window using the plot color, along with othe discriminating metadata.

Figure 60: Performing simultaneous integrations to intenstity on multiple composite plot widgets
Figure 61: Results from an integration to intensity on multiple composite plot widgets

In the multi-widget intensity integration, it is possible to trigger the cumulative intensity integrations, as described at Section 5.8 – Cumulative Intensity Integrations.

5.8 Cumulative Intensity Integrations

It happens pretty often, when doing quantitative mass spectral data analyses, that cumulative intensity integrations are required. This is the case, for example, when a given analyte species that is present on a mass spectrum as ions of different charges needs to be quantitatively accounted for under a unique quantitation value. Another example is when oxidized and non-oxidized analytes need to be accounted for under a unique quantitation value. Finally, another example is when ananalyte is present on the mass spectrum as a free ion and as a sodium and/or potassium adduct; in this case the analyte quantitation needs to account for all two or three species.

MineXpert has a feature for this specific case that is activated using the composite plot widget main menu’s Integrations menu item and Sum up intensities sub menu (Figure 62 – Starting cumulative intensity integrations).

Figure 62: Starting cumulative intensity integrations

In Figure 63 – Performing multiple intensity integrations the user has cumulatively integrated the intensities of the same analyte mass spectral signal under three peaks charged 5+, 6+, and 7+.

Figure 63: Performing multiple intensity integrations

6 Centroid Extraction from Mass Spectra

The low mass deconvolution algorithm can be tightly configured using a large set of parameter settings that are detailed below and that are accessible via the application preferences window shown in Figure 77 – Parameter set governing the low mass deconvolver and detailed below.

The centroidation of a mass spectrum is also called peak picking. This process is aimed at converting a profile-mode spectrum, that has its peaks properly shaped in Gaussian-like form, into a set of m/z values that recapitulate the initial peaks.

The configuration of the centroid extraction process is performed in the application preferences window, under the Centroidation section, as shown in Figure 64 – Configuration of the centroidation of mass spectra. There are two aspects in that configuration: the signal-to-noise estimator needs to be configured for the peak picker to be able to actually pick peaks. The peak picker needs also to be configured.

One aspect that is very important in peak picking is the determination of what is considered to be noise and what is considered to be actual signal. The signal-to-noise estimation is an optional task that is only carried out when the Signal to noise ratio is set to a value greater than 0. The signal-to-noise estimator needs a number of parameters to be set up (in the Configuration of the signal to noise estimator group box widget). One important configuration bit is related to the determination of what intensity value is considered to be the maximum intensity value over the whole mass spectrum. There are multiple ways to define that maximum intensity value, as described in Figure 64 – Configuration of the centroidation of mass spectra.

Other configuration bits are the Rolling window size (m/z) which specifies the m/z range considered when computing the local signal-to-noise ratio. The rolling window is moved data point by data point over the whole mass spectrum. Each mass spectrum data point has thus a corresponding signal-to-noise ratio value. The Intensity histogram bins configuration bit is the number of bins in the histogram of the intensities in the mass spectrum. This parameter defines the granularity with which the signal-to-noise ratio is computed for each mass spectrum data point. The Mininum required elements configuration bit is the number of data points that are required to be found inside the rolling window.

Figure 64: Configuration of the centroidation of mass spectra

The peak picker needs the following bits of configuration. The Min. intensity configures the signal intensity below which the centroids are not extracted. This is useful for highly noisy traces or when one knows that the signal of interest is above a determinat value. The Signal to noise ratio value determines the ratio below which the peak centroid is not extracted. Setting this value to 0.0 will disable the signal to noise process step. Finally, one last bit of configuration for the centroid extraction is the Allowed missing peaks value that defines the number of m/z values that can be found to be absent from the rolling window mentioned above. This parameter provides some leeway when dealing with sparse mass spectra.

The menu to start the centroid extraction is described in Figure 65 – Menu to be used to extract centroids from a trace. The figure show the mass spectrum for which centroidation is asked. When the centroidation is actually performed, the centroids are plotted in the form of a bar graph, colored in blue (see Figure 66 – The successfully extracted centroids are displayed in the form of a bar plot).

Figure 65: Menu to be used to extract centroids from a trace

When the centroid extraction process is terminated, the centroids are plotted as a bar graph. These centroid data points can be exported to a file or a clipboard exactly the same way as for the normal trace graphs (see Figure 66 – The successfully extracted centroids are displayed in the form of a bar plot).

Figure 66: The successfully extracted centroids are displayed in the form of a bar plot

7 Mass Spectral Deconvolutions

When analysing a mass spectrum, there are two available deconvolution modes:

Deconvolutions are performed in order to get back to the Mr mass of the analyte while reading m/z values. The deconvolution processes below first determine the charge of the ion beneath the mass spectral data (either charge envelope states or isotopic cluster). Then, if the user has pointed a m/z value precisely, the process goes through to the molecular mass of the analyte (the ionization agent is always considered to be the proton entity). In the following sections, all the available deconvolution processes are described in detail.

Before delving into the deconvolutions, it is necessary to present two menu options that are found in the plot widgets contained in the Mass spectra window: the menu items under the Centroidation and deconvolutions menu (Figure 67 – Mass spectrum plot widget-specific deconvolution menu).

Figure 67: Mass spectrum plot widget-specific deconvolution menu

These two menus allow one to set parameters for the manual deconvolutions (see text for details).

7.1 Deconvolution based on charge state envelope inter-peak distance

In this kind of deconvolution, at the present time, the software assumes that the ionization agent is the proton and that the ionization is positive.

The deconvolution is based on the determination of the distance between two peaks –consecutive or not– of a given charge state envelope. When the user -click-drags the cursor from one peak to another, the program tries to calculate if the distance between two peaks matches one or more charge difference(s). If so, it computes the molecular (Mr 12C-relative molecular mass) mass of the analyte.

Top panel of Figure 68 – Charge state-based mass deconvolution shows the charge state envelope-based deconvolution process for a protein of Mr#asymp8566 Da. In the top panel, the deconvolution has involved two consecutive peaks (span is 1). The mouse drag movement occurred from left to right. Thus, the m/z value chosen for the computation is that under the left peak (start point of the movement). The status line at the bottom of the plot indicates the selection range, the delta movement on the x-axis, the computed charge, the Mr value chosen for the calculation (the Mr value at the start of drag movement) and finally the calculated Mr value.

This “two consecutive mass peaks” method is the default method. However, it might happen that no clearly visible mass peak is available around one nice peak that might be chosen as the start of the mouse drag operation. In this case it is possible to define a different span between two peaks elected for the deconvolution (see Figure 67 – Mass spectrum plot widget-specific deconvolution menu). In the figure, that span has been set to 2, which means that the mouse drag movement encompasses three mass peaks: the movement start peak, one peak in the middle and finally the movement stop peak (the span is thus of two intervals between the extreme peaks).

The bottom panel of the figure now displays the same Mr value for the protein even if the span is now of two intervals.

Figure 68: Charge state-based mass deconvolution

7.2 Deconvolutions based on isotopic cluster peaks

There are two different (albeit similar) deconvolution modes that are based on the isotopic cluster representing the isotopologues of a given analyte:

7.2.1 Two-point charge determination with Mr calculation

This method is the most immediate one and is reliable when the user can visually pin-point the correct centroid position for two profiled isotopic cluster peaks. There is no centroid extraction in this calculation mode. The user has to drag the mouse from the first perceived centroid position to the next perceived centroid position. When the program encounters that the distance between the mouse start and current drag points is a multiple of the 1/z ratio (1 being a rounded value of the mass delta expected for a switch from a 12C to a 13C isotope), it prints the z value (see Figure 69 – Isotopic cluster-based mass deconvolution for a description of the process).

Figure 69: Isotopic cluster-based mass deconvolution

7.2.2 Multi-point statistical analysis-based charge determination

In this way of doing the determination of the charge of the analyte beneath an isotopic cluster of interest, the first step is to zoom in sufficiently to have a detailed view of the isotopic cluster at hand (see Figure 70 – Zoomed-in isotopic cluster for charge determination).

Figure 70: Zoomed-in isotopic cluster for charge determination

To trigger the automatic extraction of the centroids and the statistical analysis of the m/z spacings between these centroids, the user presses the keyboard key, which displays the menu in Figure 71 – Triggering the isotopic cluster-based charge determination process.

Figure 71: Triggering the isotopic cluster-based charge determination process

Upon -click-dragging the cursor over the region of interest, the centroids are extracted and statistics about the extracted centroids are displayed in a text details widget. The process is shown in Figure 72 – Isotopic cluster-based charge determination, where three centroids could be extracted. As shown on the figure, the widget that appears provides some useful data about the isotopic cluster’s centroids being extracted. There are three centroids currently extracted and initial statistics show that the putative charge of 6 may be considered reliable, although three centroids are not considered enough to actually compute an R2 value (at least four extracted centroids are needed for this).

Figure 72: Isotopic cluster-based charge determination

Upon continuing to extend the “selected” isotopic cluster region, the statistical analysis of the extracted centroids are updated, as shown in Figure 73 – Isotopic cluster-based charge determination.

Figure 73: Isotopic cluster-based charge determination

The configuration of the level of stringency for the statistics to be considered reliable for the charge determination is performed in the application preferences window, on the specific section entitled Charge determination, as shown in Figure 74 – Isotopic cluster-based charge determination.

Figure 74: Isotopic cluster-based charge determination

The statistical criteria involved in the assessment of the reliability of the determination of the charge are described below.

7.2.3 Multi-point statistical analysis-based charge determination and mass estimations

In the previous section we saw how to determine the charge of the ion beneath an isotopic cluster of interest. This is the case when the NOT_SET menu item is selected in Figure 71 – Triggering the isotopic cluster-based charge determination process.

Once the charge of the ion beneath the isotopic cluster has been reliably determined, it is possible to estimate masses for the ion and for the neutral analyte. The various ways to do this estimation work are configured in that same menu, as detailed below.

Figure 75: Gaussian fit of the isotopic cluster’s centroids

Once the average m/z value of the ion beneath the isotopic cluster has been determined, it is possible to estimate the monoisotopic mass of the analyte by using the Averagine model. The Averagine model is configured in Figure 74 – Isotopic cluster-based charge determination. For the computation to proceed correctly, it is necessary to provide both the path to the file that contains the isotopic data and the formula of neutral Averagine.

All the plots (be them graph plots, like for the Gaussian fit plot, or bars plots, like for the extracted centroids plots) are managed as described in Section 4.8.4 – General Plot Management in the Composite Plot Widgets.

7.3 Low Mass Automated Deconvolution Based on Fully Resolved Isotopic Clusters

The low mass automated deconvolution that uses the isotopic cluster peaks is designed to be reliable for low-mass analytes (typically below 5–7 kDa). Deconvolution of a mass spectrum is triggered by selecting the menu shown in Figure 76 – Low mass deconvolution of mass spectral data.

Figure 76: Low mass deconvolution of mass spectral data

The process involves two separate steps: first, the centroids are extracted from the input mass spectrum (see Section 6 – Centroid Extraction from Mass Spectra); second, the extracted centroids are used for the deconvolution proper. The deconvolution is a highly complex process that would require extensive knowledge to understand. The main concepts are the following:

The low mass deconvolution algorithm can be tightly configured using a large set of parameter settings that are detailed below and that are accessible via the application preferences window shown in Figure 77 – Parameter set governing the low mass deconvolver and detailed below.

The low mass deconvolver settings interface enables the user to store groups of settings for easy recalling along different user sessions. Each relevant widget has an associated explanatory tool tip.

Figure 77: Parameter set governing the low mass deconvolver

Isotopic data definition format

When the deconvolution process has ended, the results are shown in the console window.

If the user wants that a synthetic mass spectrum be created using the mass spectrometric data that could be used to obtain deconvolved features, checking the Check to generate a synthetic mass spectrum and configure the mass peak shaping process check box will switch the application preferences page to that entitled Peak shaper. The configuration of the peak shaper is described in ?? Unknown label: <sec_shaping-mass-peak-centroids> ??. The title of the synthetic mass spectrum can be specified in the corresponding line edit widget.

When the synthetic mass spectrum is ready, the user is provided with two options:

The generated mass spectrum is plotted in a new plot widget, in a new color if it was not parented to the original mass spectrum, in the same color otherwise.

Figure 78: The synthetic mass spectrum (blue) mimicks the observed input mass spectrum only for successfully deconvoluted features

7.4 Reading the resolving power based on mass spectral data

When -click-dragging the mouse cursor between two mass spectrum locations of interest, the program computes the apparent resolving power. This process is shown on Figure 79 – Calculation of the resolving power, where the resolving power is calculated by dragging the mouse cursor from one edge of a peak to the other at half maximum height (this is called full width at half maximum [FWHM] resolution).

Figure 79: Calculation of the resolving power

8 Analyte identifications

After a successful deconvolution step, nothing is more natural than to try to get help identifying the analytes under the mass peaks. Because the general process leading to analyte identification is rooted in the deconvolution of the input mass spectrum, the configuration of the analyte identification is started by checking the Check to perform analyte identification check box as shown in Figure 77 – Parameter set governing the low mass deconvolver.

Checking the box automatically displays, in the same application preferences window, the Analyte Identification page, as in Figure 80 – Configuration of the analyte identification.

Figure 80: Configuration of the analyte identification

The format of the dictionary file is CSV, with the field separator set to (also known as the TSV format) and looks like the following. The compulsory header line must contain at least the three column headers “Id”, “Structure” and “Formula”. The “Id” column will be used to annotate the spectra.

IdStructureFormula
GlyGlyC2H5N1O2
AlaAlaC3H7N1O2
GluGluC5H9N1O4
DAPDAPC7H14N2O4
DAP-Ala ⟶ Glu-DAPDAP-Ala ⟶ Glu-DAPC22H38N6O11

A general overview of the centroid extraction⟶deconvolution⟶analyte identification workflow is illustrated at Figure 81 – Workflow leading from a mass spectrum to analyte identity suggestions.

Figure 81: Workflow leading from a mass spectrum to analyte identity suggestions

The figure illustrates the various steps in the workflow:

The list of deconvoluted features is output in the console window (6).

Deconvolutions are performed in order to get back to the Mr mass of the analyte while reading m/z values. In the following sections, all the available deconvolution processes are described.

Before delving into the deconvolutions, it is necessary to present two menu options that are found in the plot widgets contained in the Mass spectra window: the menu items under the Centroidation and deconvolutions menu (Figure 67 – Mass spectrum plot widget-specific deconvolution menu).

9 The Processing Flow in a Data Exploration Session

The mass spectral data sets that are open in a given data exploration session are identifiable by the color of the traces. All the trace plots or colormap plots obtained for a given mass spectral data set are distinguished from the others by the color used for the plotting (trace or bars plots) or for the axes and labels (colormap plots). The color is thus a means to maintain a visual “filiation” between plots. But for the various integration steps of a mass spectral data exploration session involving the same mass spectral data set, there needs to be a way to record them in a detailed manner. The means by which this is achieved is the subject of this chapter and is based on the recording of all the integration steps (ProcessingStep records) into a general record that is called ProcessingFlow.

9.1 Recording Processing Steps Linked to the Initial Mass Spectrometry Dataset

One introduction about the ProcessingFlow concept is at Section 5.1.1 – Processing Flow Entities Document all Integrations.

The general notion of ProcessingFlow is that from the opening of a mass spectrometric data file to the end of the data exploration session, all the integration steps elicited by the user of MineXpert are recorded in such a way that the program will be able to run them all in memory when new integrations are performed.

Let’s take an example: the user works with ion mobility mass spectrometry data and is exploring the efficiency of ion mobility separation of ions of the same molecule (say, ubiquitin, for example) as a function of a number of instrument setting parameters that are modified during the acquisition.

For the first two minutes of the acquisition (min [1-2]), the instrument parameters tend to let the ubiquitin adopt a more regrouped, or condensed, tridimensional shape. The ions will thus have a drift time corresponding to that shape (see below, where this is demonstrated). During the next two minutes of the acquisition duration (min [3-4]), the instrument parameters are modified to induce a gradual defolding of the oligopeptide, which leads to an increased drift time compared to that observed in the first two minutes of the data acquisition. Three more such steps are carried out (see below).

Now, the user wants to precisely quantitate the ions that arrive to the detector during these five acquisition time ranges so as to quantitatively compare the ion mobility-based separation of the ubiquitin ions as a function of the different instrument settings.

There is one more consideration to this data exploration session: the ubiquitin molecule is ionized in the [2+–8+] range and the user wants to only compare ion counts for the 6+ charge level.

What would be the sequence of ProcessingStep events in the exploration to achieve what the user wants? This is what is described in the text below.

Figure 82: TIC chromatogram

One now needs to confirm that each ion mobility mass spectrum’s peak actually corresponds to specific mass spectrometer settings as described in the introduction of this section. Achieving that is very simple: select the RT button on the right hand side of the plot window and integrate to a TIC chromatogram each individual peak (starting from left peak at ion mobility drift times in the [26–29] ms range) up to the last one on the right. The result (Figure 87 – Retro-integrations from ion mobility spectrum peaks to TIC chromatograms) shows that indeed the different ion mobility peaks correspond to acquisition time ranges that are neatly discriminated by the integrations.

Figure 87: Retro-integrations from ion mobility spectrum peaks to TIC chromatograms

As shown in the sequence of images above, each time a new integration is performed, a corresponding ProcessingStep record is added to the general ProcessingFlow object. This is visible each time in the text that is displayed in the small window right of the plot window.

So, what is all this demonstration about? Well, the question is, how were the intensities calculated, as shown in Figure 86 – Intensities are determined for the various ion mobility peaks? To answer this question we need to recall what happened at each new step of the ion mobility mass spectrometric data exploration: a new ProcessingStep record detailing all the bits of the integration was added to the ProcessingFlow object that is systematically attached to any plot in the program. Each plot that is plotted as a result of an integration has thus a corresponding ProcessingFlow object that it inherited from the plot at which the integration took place.

This is visible by reading the ProcessingFlow text shown in the figures above and by ascertaining that new ProcessingStep records are added to existing ones. This feature of adding to the ProcessingFlow a new ProcessingStep record for each new integration fully documents the history path that leads to any plot in the program, starting right from the very first step, that is, the reading of the data from the file on disk.

When the user integrates one ion mobility spectrum’s peak to INT, the program gets the ProcessingFlow for the plot and plays—in memory— all of its ProcessingStep records right from the full data set that was initially read from disk. Playing all the steps one after the other effectively restricts the scope of the initial mass dataset to a limited subset. The set of ProcessingStep records contained in the ProcessingFlow thus acts as a multi-component data filter.

In the end, all the mass data that could “pass” all the ProcessingStep records have their ion count summed up to the intensity value that is displayed as a result of the integration.

9.2 Recording Processing Steps Detached from the Initial Mass Spectrometry Dataset

In the previous section, we saw how ProcessingStep records are added to the ProcessingFlow object that documents the history of any given plot in MineXpert. In the examples above, all the integrations did involve the initial dataset and subsets of that dataset as documented by the ProcessingStep records, such that it is effectively possible to replay all the ProcessingStep records from the first one to the last one: the logical link between the various plots and the initial dataset as read from disk has never been disrupted.

There are situations where this stops from being true. And this is what this section is all about.

Let’s take an example based on the same dataset as that used in the previous section. At one moment (Figure 84 – Isotopic cluster of the 6+ ion) the user wanted to ascertain the charge of the ions beneath a given isotopic cluster. That process involves extracting and plotting the centroid of each isotopic clusters’ peak that is selected by the mouse dragging movement.

The centroids bars plot that is plotted into the same plot widget that the user is selecting in Figure 88 – A centroids bars plot is no more logically linked to the initial mass dataset, is no more linked to the initial mass spectrometric data set.

Figure 88: A centroids bars plot is no more logically linked to the initial mass dataset

What does the integration destination type NO_DATASET_MZ do in the context of the use of the centroids bars plot later? The presence of NO_DATASET_MZ as either source or destination integration type stops MineXpert from trying to use the initial dataset when actions are requested on that centroids bars plot. Let’s say that the user wanted to integrate the centroids bars plot to an intensity (INT) or a mass spectrum (MZ) for later use (whatever that later use may be). The user would select the centroids bars plot and then check the MZ button on the right hand side of the plot widget and perform a -click-drag operation over the centroids bars plot. MineXpert would interpret that as a normal integration, look for the m/z range covered by the mouse drag movement and try to replay all the ProcessingStep records in the ProcessingFlow. If there was no ProcessingStep record documenting that the centroids bars plot is no more logically linked to the initial mass dataset, the result of that last integration would be obtained for the isotopic cluster graph plot displayed in the figure, not for the centroids! Which would of course mean nothing.

The ProcessingStep record listing NO_DATASET_MZ as an integration source and/or destination type allows for interesting computing possibilities. For example, when an integration such as that mentioned above is tried, the program checks the compatibility between the source plot data which is, in this example, the centroids bars plot (source type NO_DATASET_MZ) on the one hand and the integration destination type, which is either a mass spectrum (MZ) or an intensity (INT). The result of check is positive because the centroids bars plot is indeed m/z data (source type NO_DATASET_MZ) and also an intensity can be readily computed from the plot itself. In this case, the integration to a mass spectrum would work: the new plot would be a centroids bars plot exactly as the parent plot was a centroids bars plot. In this case, the data of the plot itself is used to create the requested artifact: a new MZ or a INT intensity value to be printed in the Console window.

Let’s imagine that the user did not want to integrate the centroids bars plot to a mass spectrum but to a drift spectrum. The program cannot comply: how can a source plot of type MZ be used to plot a destination plot of type drift spectrum (DT) without needing the initial mass spectral dataset, exactly as performed in Figure 85 – Ion mobility (drift) spectrum?

10 Recording data exploration discoveries

When doing mass analysis work it is often desirable to store the painstakingly manually picked m/z or Mr values for later use. MineXpert provides a flexible process allowing one to record the data discoveries during the exploration of a mass data set to any combination of the following destinations: file, clipboard, console.

In order to record the innumerous analysis steps that result from a data exploration session, the configuration of the discoveries storage must have been done by accessing Preferences⇨Edit preferences... and then selecting the Discoveries section, as described in Figure 5 – Application preferences - Discoveries page.

In that window, the user can select the destination of the data analysis recording system: console, clipboard, file or any combination of the three. When electing to record the discoveries to file, the user might specify if the recording would overwrite any preexisting file or, instead, append to that file. Depending on the kind of plot where data exploration occurs, the format of the data to be recorded needs to change. Indeed, it would make no sense to record the charge z when exploring data in the Drift spectra window. This is why the text format of the data export needs to be defined for each one of the three kinds of plots: TIC/XIC chromatogram, mass spectrum or drift spectrum (Specialized formats group box).

Before delving into the configuration intricacies, let us tell immediately how to trigger the recording of the exploration discoveries: using the bar in the composite plot widget containing the graph being analyzed.

The text format specification can contain particular tokens as described below.

Once configured, the format strings might be stored in a drop down box for later use. To that end, click onto the Add to history button while having the format text displayed in the text editor and it will be appended to the drop-down list. The list gets stored when the dialog window is closed and will be filled-up again when the program is restarted.

As an example, if the user defined the following format string for a mass spectrum:

Formatting specification for the data discovery stanza

Then, a resulting data exploration stanza that would be recorded will look like this:

Output data discovery stanza

Interestingly, the user can define any kind of format, leaving fields available for later filling-in. This feature is of immense value when the analysis file is used later to fill-in a database for easy storage and interrogation of the exploration discoveries. In this case, it would be useful to have the file opened in an editor and at each new stanza, edit the comment field if something needs to be commented, like the shape/intensity of a mass peak, for example.

Note that the program closes the file each time a new stanza has been written. This makes it possible to edit that file safely in between each stanza record. Remember to force the editor to reload the file from disk after each exploration discovery recording.

When the recording involves sending the analysis data to the console, the data are sent to it as text that is colored the same as the spectrum that was under scrutiny.

When the mouse cursor has been placed at the proper location on the graph (with or without -click-dragging, depending on the situation), the user hits the bar and the data analysis stanza is recorded to the selected destination(s): console, clipboard, file.

Appendix

GNU General Public License version 3

Version 3, 29 June 2007

Copyright ©︎ 2007 Free Software Foundation, Inc. https://fsf.org/

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Preamble

The GNU General Public License is a free, copyleft license for software and other kinds of works.

The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program&mdash;to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.

To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it.

For the developers’ and authors’ protection, the GPL clearly explains that there is no warranty for this free software. For both users’ and authors’ sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions.

Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users’ freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users.

Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free.

The precise terms and conditions for copying, distribution and modification follow.

TERMS AND CONDITIONS

0. Definitions.

“This License” refers to version 3 of the GNU General Public License.

“Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.

“The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations.

To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified
version” of the earlier work or a work “based on” the earlier work.

A “covered work” means either the unmodified Program or a work based on the Program.

To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.

To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.

An interactive user interface displays “Appropriate Legal
Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.

1. Source Code.

The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.

A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.

The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.

The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work’s System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source.

The Corresponding Source for a work in source code form is that same work.

2. Basic Permissions.

All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law.

You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you.

Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary.

3. Protecting User's Legal Rights From Anti-Circumvention Law.

No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.

When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work’s users, your or third parties’ legal rights to forbid circumvention of technological measures.

4. Conveying Verbatim Copies.

You may convey verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program.

You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.

5. Conveying Modified Source Versions.

You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:

  1. The work must carry prominent notices stating that you modified it, and giving a relevant date.
  2. The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”.
  3. You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.
  4. If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so.

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation’s users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

6. Conveying Non-Source Forms.

You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:

  1. Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.
  2. Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.
  3. Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b.
  4. Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements.
  5. Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d.

A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.

A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally
used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.

“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.

If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM).

The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network.

Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying.

7. Additional Terms.

“Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.

When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.

Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:

  1. Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or
  2. Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or
  3. Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or
  4. Limiting the use for publicity purposes of names of licensors or authors of the material; or
  5. Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or
  6. Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors.

All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.

If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms.

Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way.

8. Termination.

You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11).

However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.

Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.

Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10.

9. Acceptance Not Required for Having Copies.

You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so.

10. Automatic Licensing of Downstream Recipients.

Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License.

An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party’s predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.

You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it.

11. Patents.

A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor’s “contributor version”.

A contributor’s “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.

Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor’s essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version.

In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.

If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient’s use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.

If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.

A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.

Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law.

12. No Surrender of Other's Freedom.

If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.

13. Use with the #acronym(GNU) Affero General Public License.

Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such.

14. Revised Versions of this License.

The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation.

If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Program.

Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version.

15. Disclaimer of Warranty.

THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

16. Limitation of Liability.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

17. Interpretation of Sections 15 and 16.

If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

one line to give the program's name and a brief idea of what it does

Copyright (C) year — name of author

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Also add information on how to contact you by electronic and paper mail.

If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode:

program Copyright (C) year — name of author

This program comes with ABSOLUTELY NO WARRANTY; for details type “show w”. This is free software, and you are welcome to redistribute it under certain conditions; type “show c” for details.

The hypothetical commands “show w” and “show c” should show the appropriate parts of the General Public License. Of course, your program’s commands might be different; for a GUI interface, you would use an “about box”.

You should also get your employer (if you work as a programmer) or school, if any, to sign a “copyright disclaimer” for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see https://www.gnu.org/licenses/.

The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read https://www.gnu.org/licenses/why-not-lgpl.html.

Colophon

About the authors

Filippo Rusconi is a senior research scientist at the French national research council (Centre national de la Recherche scientifique, CNRS). Filippo has a background in biochemistry and organic chemistry and was trained during his Ph.D. as a bioanalytical chemist. He has extensive knowledge of analytical techniques involved in the study of biopolymers.

Filippo Rusconi is the author of a handbook about mass spectrometry for biochemists (French). The book was published by the French sci/tech publisher Lavoisier Tech&Doc.

Book preparation

The look of this book (PDF file) is the result of me having read many books from the O’Reilly publisher.

The typesetting of the book has been done on a Debian GNU/Linux computer using only Free Software. The application was used for rendering the document code.

The main font used is EBGaramond and the symbol/mathematical font was from the STIX project (font: STIX2Math).

The screen shots were taken with Spectacle, the screen capture program shipped along with my KDE desktop environment and resampled either with (the GNU image manipulation program) or . Illustrations were done in Inkscape, a vectorial drawing software.

Index

  1. 1 proteowizard.sourceforge.net
  2. 2 qcustomplot.com
  3. 3http://www.debian.org/
  4. 4Although there certainly is spectrum combination going on in the guts of the software, because the system actually acquires much more spectra than is visible on screen and each newly displayed spectrum is actually the combination of many spectra acquired under the surface.
  5. 5Unless eluted analytes do absorb UV light but do not either desorb/desolvate or ionize, or both.
  6. 6Please, see http://proteowizard.sourceforge.net/.
  7. 7TIC stands for “total ion current” and XIC stands for “extracted ion current”.
  8. 8Combination of colormaps is not yet implemented, although they might be useful in some situations.
  9. 9Even if they are obtained by conversion of raw vendor files to mzML files using ‘s tool.
  10. 10Thanks to Dr Valérie Gabelica (IECB, Bordeaux, France) for permission to use her data set.