MENT: Microarray comprEssioN Tools
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
src - First commit Dec 11, 2014

MENT (Microarray comprEssioN Tools)

MENT is a set of tools for lossless compression of microarray images however, it can be used in other kind of images such as medical, RNAi, etc. This set of tools is divided into two categories, defined by the decomposition approach used:

  • Bitplane Decomposition
  • Binary-Tree Decomposition

In what follows, we will describe the set of tools available in MENT:

  • BOSC06 (Bitplane decOmpoSition Compressor 2006) - Lossless compression tool for microarray images introduced by Neves and Pinho in 2006 (Neves 2006). This tool uses an image-INDEPENDENT context configuration and arithmetic coding.

  • BOSC09 (Bitplane decOmpoSition Compressor 2009) - Lossless compression tool for microarray images introduced by Neves and Pinho in 2009 (Neves 2009). This tool uses an image-DEPENDENT context configuration and arithmetic coding.

  • BOSC09BFS (Bitplane decOmpoSition Compressor 2009 with Backgroud Foreground Separation) - Tool inspired on method introduced by (Neves 2009) where it was added a segmentation unit as a pre-processing step before the encoding procedure. Results for this tool were first published in Matos 2010.

  • BOSC09HC (Bitplane decOmpoSition Compressor 2009 using Histogram Compaction) - Tool inspired on method introduced by (Neves 2009) where it was added an Histogram Compaction unit in order to remove some redundant bitplanes. This Histogram Compaction is usefull for images that have a reduced number of intensities.

  • BOSC09SBR (Bitplane decOmpoSition Compressor 2009 using Scalable Bitplane Reduction) - Tool inspired on method introduced by (Neves 2009) where it was added an Scalable Bitplane Reduction unit in order to remove some redundant bitplanes. The Scalable Bitplane Reduction technique was first introduced by Yoo 1999.

  • SBC (Simple Bitplane Coding) - Tool inspired on one of Kikuchi's work (Kikuchi 2009, Kikuchi 2012).

  • BOSC09MixSBC (Bitplane decOmpoSition Compressor 2009 Mixture with Simple Bitplane Coding) - Tool based on a mixture of finite-context models. In this particular case, we only considered two different models. The first one used by Neves and Pinho (Neves 2009) and the other one based on a Simple Bitplane Coding inspired on Kikuchi's work (Kikuchi 2009, Kikuchi 2012).

  • BITTOC (Binary Tree decomposiTiOn Compressor) - Tool inspired on Chen's work regarding compression of color-quantized images (Chen 2002). This tool performance was studied in the context of medical images by Pinho and Neves in 2009 (Pinho 2009) and more recently applied to microarray images (Matos 2014).

  • CmpImgs (Compare Images) - An image comparasion tool.


In order to compile the source code, you will need to install a GCC compiler on a Unix platform (Linux or OS X). If you are using Windows, it will be easy to use the pre-compiled binaries that are in folders win32 and win64.


For Linux users, install the build-essentials package which contains GCC and other utilities in order to be able to compile the source code. To install the build-essentials package type:

sudo apt-get install build-essential

After that you only need to type:

make -f Makefile.linux

to create the binaries files that can be found at linux.


For OS X users, it depends on which Xcode version is installed. For the most recent versions, you will need to install the "Command Line Tool" in order to have the "make" utility. It seems that the "Command Line Tools" are not installed by default anymore when you install Xcode. In order to install them, open Xcode, go to Preferences -> Downloads -> Components -> Command Line Tools. This also should install a GCC compiler as well. If you want a recent compiler you can install it using Homebrew by typing the following command in a Terminal:

brew install gcc48

After that, we need to make sure that the "CC" variable in the "Makefile.osx" file is linked to the GCC previously installed. The most recent versions of XCode come with a modified version of GCC known as LLVM. This tool was not tested using LLVM so it will probably not work if you try to compile the code using it. In order to generate the binaries just type:

make -f Makefile.osx

to create the binaries files that can be found at osx.


The source code was NOT tested in a Windows enviroment. Nevertheless, you can compile the code using a cross-compiler in a Linux environment after installing the cross-compiler MinGW-w64. After installing MinGW-w64, just type:

make -f Makefile.win32

to get the binaries files that can be found win32 for a 32-bits architecture and for the 64-bits architecture just type:

make -f Makefile.win64

to get binaries that can be found at win64. The windows executables were not tested exhaustively so you can find some issues when using them!


Because MENT contains several tools, we will not list all the paramenters that can be defined by the user. If you execute each compression tool without parameters, it will output all the parameters available.


In the following, we will show some examples of how to use this tool in a linux environment.

For the case of BOSC09 we can compile file "1230c1G.pgm.gz" and put the output stream into file "encodedImg.dat" by typing:

$ BOSC09e -o encodedImg.dat 1230c1G.pgm.gz

As we can see, BOSC09 is able to read a given image compressed in gzip.

Now to decode the encoded image, just type:

$ BOSC09e -o decodedImg.pgm encodedImg.dat

After the decoding image, you can now perform compare operation using the CmpImg tool:

$ CmpImgs 1230c1G.pgm.gz decodedImg.pgm
L2 Error: 0.000 ; Max Error: 0 ; PSNR: 999.0 dB ; L1 Error: 0.000

For all the other tool, the paramaters are almost the same. Anywho, if you need help just execute the compression tool without parameters and it will output the parameters available for you.


The microarray data sets were collected from different publicly available sources however, currently some of this data sets are not available in their original location anymore. We decided then to upload them to an alternative public location that we will indicate next.

Data set Number of images Raw size Download link Original download link
ApoA1 32 66.4 MB download download
Arizona 6 694.9 MB download download
IBB 44 1.03 GB download download
ISREC 14 26.7 MB download dead
Omnibus (LM) 25 2.5 GB download download
Omnibus (HM) 25 2.5 GB download download
Stanford 40 396 MB download dead
Yeast 109 219 MB download download
YuLou or MicroZip 3 40.7 MB download dead


If you use some tool from MENT, please cite the following publications:


At the time, there are no relevant issues detected but if you find one please let me know using the issues link at GitHub. These tools were tested in a Linux and OS X plataforms. We compile the source code using a cross compiler (MinGW-w64) to get the windows binaries that are at win32 and win64. We did not had the time to test all the tools in Windows therefore, you can find some issues.


Copyright (c) 2014 Luís M. O. Matos. See LICENSE.txt for further details.