Xrei Program

From Biowiki
(Redirected from XreiProgram)
Jump to: navigation, search


xREI (pron. "X-ray") is an AJAX web interface and visualization server for xrate and its grammar files.

Along with xrate's annotation and training functionality, it provides web access to grammar state diagrams and substitution matrix bubbleplots.

Downloading the source code

The xREI source code is available from our anonymous cvs, to download use:

cvs -z3 -d:ext:anonymous@cvs.biowiki.org:/usr/local/cvs co xrei
cvs -z3 -d:ext:anonymous@cvs.biowiki.org:/usr/local/cvs co xrei-scripts
contains the javascript and html interface files, while
contains the perl scripts which serve as xREI's backend.

Browsing the source code

Browse the source code repositories here:

Installation notes

The following notes are from experience configuring xREI under OS X and Debian Linux. ymmv under other OSes. These instructions presume that Apache2 and Perl5 are installed and functional on your system.


Before installing xREI, the following software packages should be installed, preferably via apt-get, rpm, macports or similar:

  • TeXLive 2007
    or equiv (note: the macports version under os x never worked for me, I recommend MacTeX)
  • ImageMagick
  • GraphViz
All executables should be installed within the root/default path, /usr/bin or /usr/local/bin are usually good choices under linux. By default, macports under OS X will require that you add /opt/local/bin to your path. xREI uses mpost, dvips, and latex from
, dot and neato from
and convert from

In addition xREI will require the following perl modules be installed:

  • GraphViz
  • MIME::Base64
  • JSON::Any

xREI also requires DART.

Apache Configuration

Your sites-available/default or httpd.conf file should be modified to include a section that looks something like this:

<Directory "/var/www/xrei-scripts">
		Options +ExecCGI
		[[Add Handler]] cgi-script .cgi .pl
		[[Set Env]] PERL5LIB /usr/local/biowiki/dart/perl
		 [[Set Env]] MPINPUTS /usr/share/texmf-texlive/metapost/base

xREI Configuration

xREI expects xrei-scripts to live in
by default, and for xrei.json to be in the same directory as
. These can both be modified in the
function in
expects a directory
it can write
files to. This directory should be cleaned out regularly with a cronjob. Once a night to once a week should be frequent enough, depending on use.
defines the repositories that will be available to xREI, and is in a JSON format. An example configuration is included with xREI, including the directories containing xrate grammar files.

Other information

A quick tutorial on writing AJAX wrappers to Unix command-line tools can be found here: Dojo Perl Tutorial



xREI development began during the 2007 Google Summer of Code, sponsored by NESCent. The original
ideas page can be found here.

-- Lars Barquist - 29 Feb 2008