msfilter
Copyright Notice
msfilter is Copyright (C) 2009 Magnus Palmblad and Bo Blanckenburg.
This work is licensed under a
Creative Commons Attribution-Share Alike 3.0 License.
About msfilter
msfilter filters high-resolution mass spectra of small, singly charged species by removing from the spectra those channels which cannot contain any signal from such species, given a certain peak width/mass measurement uncertainty. Particularly for FTICR mass spectrometry, this filter can compress low m/z spectra a factor 4. This in turn speeds up data analysis and reduce memory requirements. The filter was described in Blanckenburg et al. (reference to be insterted here).
The current version of msfilter works on ASCII data, but future versions will also work for spectral data in the open mzXML/mzML formats.

Figure 1. msfilter compresses mass spectra by removing channels containing only noise, here illustrated by a compression of a mass spectrum (green) into a pseudospectrum approximately 1/3 the size (m/z 245-250) (red).
Download msfilter here. (Right-click and choose "Save Link As...".)
Compiling msfilter
Compile msfilter with: gcc -g -o msfilter msfilter.c -std=c99 -lm
Using msfilter
Usage: msfilter -l <lower mass> -u <upper mass> -i <input file> -o <output file> -e <mass measurement error in ppm> [-w <filter output file> -M (applies minimum, potentially lossy, filter)]
By default, msfilter is lossless (assuming organic molecules of H, C, N, O, S and P, plus one H+, Na+ or K+ as charge carrier). The minimum filter is defined based on observed masses and slightly more restrictive, reducing spectral data size further.
magnus.palmblad@gmail.com