lgatto edited this page Jan 17, 2013 · 59 revisions


This page describes msGUI, a light graphical user interface for mass spectrometry for R. The project was initiated as a Bioconductor mentored project. If you are interested, read more below and/or get in touch.


If you want the very latest version, you can use the devtools package (CRAN) to install it straight from github. The install_github function will also take care of dependencies. Note that on Windows, this installation mechanism require Rtools.

install_github("msGUI", username = "lgatto")

Alternatively, you can download the packages (linux/mac source package tar.gz, Windows binary package zip) for manual installation. First however, install the R dependencies.

depends <- c("mzR", "MSnbase", "methods")
imports <- c("png", "gWidgets", "gWidgetsRGtk2", "cairoDevice")
## or, if BiocInstaller is not available
## source("http://www.bioconductor.org/biocLite.R")
biocLite(c(depends, imports, suggests))

and then

install.packages("msGUI_0.1.1.tag.gz", repos = NULL)
## or
install.packages("msGUI_0.1.1.zip", repos = NULL)

Note that the GTK+ external dependency is installed from within R automatically (at least on a recent test with Rstudio on Windows). If this fails, see this page for GTK installation instruction for Windows.


First loaded with library("msGUI"), the graphical interface is started by calling msGUI(). Raw data files in mzXML or mzML can then be open using the Open file button. Alternatively, you open a file when launching the interface by passing the file name as input with msGUI("myRawFile.mzXML").

See ?msGUI for more details.

(TODO) The GUI is documented here.


Details about


  • Just read about tcltk conflicts with mclapply!
  • The graphical layer (tcltk/gtk2/qt/gWidgets/traitr/shiny/...) is open for discussion - the end product should to be cross platform, easy to install and reasonably pleasing to the eye.
  • caching infrastructure for smooth interaction.
  • label b/y ions (optional)
  • if we have the sequence, overlay theoretical spectrum (optional).
  • binding next/previous buttons to right/left keys

Ideas for further development (not in order of importance)

  • Support for MS levels > 2
  • Possibility to integrate peaks - see issue #13.
  • An interactive table that would display the feature data for given spectra
  • Ability to view all meta data contained in an experiment
  • UI improvements in Misc that are not implemented already, also make UI more responsive by using handlerIdle
  • Caching: try to avoid using png by directly storing the raster array of the graph.
  • Caching: store more objects in memory
  • Graphs: figure out how to eficiently do ovelays (the zoom area rectangle, for instance) on an existing graph
  • Consider alternatives to the GTK graphical toolkit.

See also issues.