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.
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.
MICROARRAY DATA SETS
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|
|Omnibus (LM)||25||2.5 GB||download||download|
|Omnibus (HM)||25||2.5 GB||download||download|
|YuLou or MicroZip||3||40.7 MB||download|
If you use some tool from MENT, please cite the following publications:
Luís M. O. Matos, António J. R. Neves, Armando J. Pinho, "Lossy-to-lossless compression of biomedical images based on image decomposition", in Applications of Digital Signal Processing through Practical Approach, Sudhakar Radhakrishnan (Editor), InTech, pp. 125-158, October 2015.
Luís M. O. Matos, António J. R. Neves, Armando J. Pinho, "A rate-distortion study on microarray image compression", in Proceedings of the 20th Portuguese Conference on Pattern Recognition, RecPad 2014, Covilhã, Portugal, October 2014
Luís M. O. Matos, António J. R. Neves, Armando J. Pinho, "Compression of microarrays images using a binary tree decomposition", in Proceedings of the 22nd European Signal Processing Conference, EUSIPCO 2014, Lisbon, Portugal, September 2014.
Luís M. O. Matos, António J. R. Neves, Armando J. Pinho, "Compression of DNA microarrays using a mixture of finite-context models", in Proceedings of the 18th Portuguese Conference on Pattern Recognition, RecPad 2012, Coimbra, Portugal, October 2012.
Luís M. O. Matos, António J. R. Neves, Armando J. Pinho, "Lossy-to-lossless compression of microarrays images using expectation pixel values", in Proceedings of the 17th Portuguese Conference on Pattern Recognition, RecPad 2011, Porto, Portugal, October 2011.
Luís M. O. Matos, António J. R. Neves, Armando J. Pinho, "Lossless compression of microarrays images based on background/foreground separation", in Proceedings of the 16th Portuguese Conference on Pattern Recognition, RecPad 2010, Vila Real, Portugal, October 2010.
António J. R. Neves, Armando J. Pinho, "Lossless compression of microarray images using image-dependent finite-context models", in IEEE Transactions on Medical Imaging, volume 28, number 2, pages 194-201, February 2009.
António J. R. Neves, Armando J. Pinho, "Lossless Compression of Microarray Images", in Proceedings of the IEEE International Conference on Image Processing, ICIP-2006, Atlanta, GA, pages 2505-2508, 8-11 October, 2006.
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.