msalign2


Copyright Notice

msalign2 is Copyright (C) 2007-2009 Magnus Palmblad

msalign2 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 2 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

The additional scripts (wrap_mzXML.R, FeaturesPlot.sh, MSAlign.sh and all PHP scrips) are Copyright (C) 2008-2009 Ekaterina Nevedomskaya and Rico. J. E. Derks and available under the same GNU General Public License as msalign2 (see above).

About msalign2

msalign2 aligns LC-MS or CE-MS datasets using (reasonably) accurate mass measurements in complex samples sharing many compounds (metabolites, peptides etc.). Datasets can be aligned by matching masses across samples and fitting a curve to these matches. The curve represents the temporal relation between the chromatograms or electropherograms.

Alignment example of 2 BSA digest test runs.
Figure 1: Example piecewise curve fitting of 2 BSA digest test runs.

CE-MS data, before and after alignment.
Figure 2: Below an alignment example is shown of a CE-MS dataset before and after alignment.

Installation webapplication msalign2:

The package consists of 4 separate programs/scripts:

Requirements:

MSAlign.sh configuration:
The alignment script can be configured to use multiple CPUs. For this, modify the variable MAXJOBS to the amount of CPUs you want to use.
Default: MAXJOBS=2

msalign2:
In order to compile msalign2 the libraries base64 and RAMP are needed. msalign2 should be compiled as e.g. (this example uses gcc version 4.1.2):
gcc -o msalign2 base64.c ramp.c msalign2.c -I. -lgd -lm -lz -std=gnu99

FeaturesPlot.sh
The FeaturesPlot.sh script needs GNUplot 4.0 for creating the alignment plots.

wrap_mzXML.R:
The R-script needs at least R version 2.8.0 and the XML library package to be installed in R and can be downloaded here. The script uses the XML package for handling of the mzXML files.

Webserver configuration:
You need to give the webserver write access to several directories (./data and ./temp). The website can only search for your datafiles within a certain directory (./data). In the webpage root directory there should be a directory called ./data which links to the place where your datafiles are located. The ./temp directory is for the MSAlign.sh script to store temporary files.

PHP 5.2 configuration:
To be able to execute programs / bash scripts from the webserver the php.ini file was modified. Safe mode (safe_mode = off) was switched off. It is also possible to leave safe mode on (safe_mode = on) and set the appropiate directories in safe_mode_exec_dir (i.e. the directory where the webpage is running in).

Installation / using standalone msalign2:

In order to compile msalign2 the libraries base64 and RAMP are needed. msalign2 should be compiled as e.g. (this example uses gcc version 4.1.2):
gcc -o msalign2 base64.c ramp.c msalign2.c -I. -lgd -lm -lz -std=gnu99

Usage: msalign2 -1 <datafile you want to align> -2<master datafile> -e<max. mass error in MS-only data (in ppm)> -l<typical standard deviation in LC retention time in LC-MS data> -f<number of featurs used for alignment (within +/-10% of this value)> -c<cost per breakpoint (general value is between 0.3 and 0.5)> -d<fitness (general value is 1)> -X<X scan> -Y<Y scan> -R<MS start scan>,<MS end scan>

How to use:

Below the seperate parameters are explained. The focus is mainly on the webapplication, but it is useful for the standalone application as well.




For general inquiries, contact magnus.palmblad@gmail.com. For build and installation questions, contact r.j.e.derks@lumc.nl.