Getting Started

  1. Please download and install Java Runtime Environment (JRE) or JDK version 1.6.0 or newer for your specific platform and operating system.
  2. Then Download Maltcms and follow the installation instructions.

Installation Instructions

Maltcms currently has no automatic installation script. In order to set everything up correctly, please follow the instructions for your operating system.

Unix/Linux/MacOSX

Extract the downloaded zip archive to a directory of your choice. In order to have maltcms.sh available on your command prompt, set the following in your $HOME/.profile or $HOME/.bashrc (or in any other appropriate shell configuration file)

export PATH=$PATH:/path/to/extracted/maltcms/bin

Maltcms can be launched via the maltcms.sh script in its bin directory. This will use the java executable available via the environment variable JAVA_HOME or the java executable found first on the path.

Windows

Extract the downloaded zip archive to a directory of your choice. In order to have maltcms.bat available on your command prompt, please follow the instructions appropriate for your installed operating system. You may need system administrator privileges to change system variables!

Windows 7

Select 'Computer' from the Start menu and choose 'System Properties' from the top level actions bar or from the context menu. Click on 'Advanced system settings' and select the 'Advanced' tab in the dialog. Click on 'Environment Variables' and under 'System Variables' or 'User Variables', locate the 'PATH' variable, and double-click to edit it. If no variable named 'PATH' is available in the 'User Variables' section, select new, name the variable 'PATH'.

Windows Vista

Right click on your 'My Computer' icon on the desktop and select 'Properties' from the popup-menu. Click on 'Advanced system settings' and select the 'Advanced' tab in the dialog. Click on 'Environment Variables' and under 'System Variables' or 'User Variables', locate the 'PATH' variable, and double-click to edit it. If now variable named 'PATH' is available in the 'User Variables' section, select new, name the variable 'PATH'.

Windows XP

Select 'Start' and click 'Control Panel'. Then go to 'System' and click on 'Advanced'. Click on 'Environment Variables' and under 'System Variables' or 'User Variables', locate the 'PATH' variable, and double-click to edit it. If now variable named 'PATH' is available in the 'User Variables' section, select new, name the variable 'PATH'.

Editing the Path Variable

Add the absolute path of the Maltcms directory to the end of the 'Variable value' like so:

Old:

C:\Program Files;C:\Winnt;C:\Winnt\System32

New:

C:\Program Files;C:\Winnt;C:\Winnt\System32;C:\path\to\maltcms\bin

Click 'OK' will close the dialog and set the variable.

Finally, open a new command prompt by typing the 'Windows' or 'Meta' key on your keyboard. Then type 'cmd.com' and hit enter. A new command prompt will open. Type 'maltcms', hit 'Enter' and you should see maltcms' help appear. It may be necessary to log out and back in before the changed settings take effect.

Running Maltcms

The following section requires a command prompt (shell), indicated by the prefixed '>', which should not be typed into the prompt. We assume, that you have installed Maltcms as described in the previous section. Windows users should substitute 'maltcms.sh' with 'maltcms.bat' in the following examples.

You can start the 32 bit commandline version by typing

>maltcms.sh

, which will print out the input options that you can supply.

Alternatively, on a 64 bit system and with 64 bit VM you can call

>maltcms.sh -d64

Sometimes, the default amount of memory used by the JAVA VM is not sufficient. You can then call

>maltcms.sh -Xms1G -Xmx2G

where -Xms1G sets the minimum amount of memory used by the VM to 1GByte of Ram and -Xmx2G sets the limit of the maximum amount of memory available to maltcms to 2GBytes. If you have more RAM installed, you can always increase the latter limit.

If you use java on a 32 bit architecture and a 32 bit VM, more than 2G might not be available. Using java on 64 bit architectures and with a 64 bit VM allows larger amounts of memory to be allocated.

Recommended arguments for Maltcms are:

-i <INPUTDIR> (e.g. /vol/data)
-o <OUTPUTDIR> (e.g. /vol/output)
-f <FILES> (e.g. "*.cdf")

If no INPUTDIR is given, FILES are resolved against the current working directory. If no OUTPUTDIR is given, processing results will be created below the current working directory in a directory following the convention 'maltcmsOutput/USERNAME/DATETIME/'.

In order to recurse into the INPUTDIR, you can add '-r' to the command line. As an alternative to defining the input directory explicitly and using a file glob expression (only *.EXT expressions will currently work), you can also define a comma separated list of absolute or relative file paths. Relative paths are resolved from the current working directory. Please note that paths containing spaces can only be handled, if the whole argument (all paths separated by commas) is flanked in '"'s.

Example data

Example data for maltcms in netcdf format along with alignment anchors can be downloaded individually from here.

Alternatively, 1D and 2D chromatogram data can be downloaded here.

Running ChromA/ChromA4D

ChromA: To execute the standard pipeline for GC- and LC-MS, use

>maltcms.sh -c cfg/chroma.properties -i <INPUTDIR> -o <OUTPUTDIR> -f <FILES>

ChromA4D: To execute the available pipelines for GCxGC-MS, use

>maltcms.sh -c cfg/chroma4D.properties -i <INPUTDIR> -o <OUTPUTDIR> -f <FILES>

If you do not supply any arguments, Maltcms will print all available arguments with a short explanation.

>maltcms.sh -?

prints command-line options for maltcms with explanations.

Other Features

Graphical Wizard UI

As of version 1.1 of Maltcms, the graphical wizard is no longer supported.

Extending Maltcms with custom code

Maltcms allows to add functionality by adding custom jar files to the runtime classpath or to the lib/ directory.

The classpath in maltcms.jar is created at build time and will not contain those jars, so you need to add them manually to the runtime classpath with the '-cp' option supplied to java, or by using the 'maltcms.sh' script, which will pick these up automatically.

Scripting with Groovy

To simply use Maltcms in a higher level workflow, you can easily write scripts in the Groovy programming language. These scripts can be executed by calling

maltcms.sh -exec path/to/script.groovy <ARGS>

from the Maltcms installation base directory, where ARGS are optional parameters to your script.

Input data formats

Currently, netCDF compatible input and output is supported, mzXML input works reliably for MS1 data, output is currently redirected to netCDF format. Additionally, mzData is supported as input format, but again, output is redirected to netCDF format. Recently, read support for mzML has been added via the jmzml library.

To get some insight into the parameters used by Maltcms and possible alternatives, consult the properties files in cfg/, especially * alignment.properties * preprocessing.properties * graphics.properties

Properties and settings for individual commands in a processing pipeline are located in the respective xml file below cfg/xml/.

Custom configuration files can be provided to maltcms.sh/maltcms.bat, as well as to maltcms.jar using the -c option. Those custom options then override the default values.

File format for Anchors

Anchor files start with a file designation in their first line: Path can be omitted, if ORIGINAL_DATA_FILE and anchor file are both located in input base directory (cmdline option -i). Otherwise, the absolute path to the original file has to be given.

>NAME_OF_ORIGINAL_DATA_FILE.cdf

The second line defines the column names:

Name    RI      RT      Scan

All following lines contain information for one anchor each:

RI1     -       -       230
RI2     -       -       430

etc.

Note that columns RI and RT are optional, Scan and Name are required. Anchor names should be identical for matched compounds.

Full example

File Example1.txt would look like this:

>Example1.cdf
Name    RI      RT      Scan
RI1     -       -       230
RI2     -       -       430
RI3     -       -       600

File Example2.txt would look like this:

>Example2.cdf
Name    RI      RT      Scan
RI1     -       -       234
RI2     -       -       437
RI3     -       -       598