Installing the Skylign Web Server

For the purpose of these instructions it will be assumed that source files are placed in /opt/src.

Install Prerequisites

step 1 PNG support

libpng - required by Bio::HMM::Logo to produce PNG versions of the logos.

step 2 True Type font support (linux)

libfreetype - required to produce PNG logos on linux.

step 3 perl

Note: We recommend using perl 5.14 or higher, older versions have not been tested but could also work.

Download perl and install from source following their instructions or use the package manager of your choice.

Note: You may already have perl installed on your system, so this step may not be necessary.

step 4 supporting perl modules

You will then need to install the following perl modules. This can be done easily via cpan. For example, to install Catalyst:

$ cpan install Catalyst

Required by the Catalyst web framework.

Required by Bio::HMM::Logo

Required by Skylign

Installing the Server

Note: If you have git installed, Skylign and Bio::HMM::Logo can be cloned from github. Otherwise a zip of the required files can be downloaded from the respective project page on the github website.

Skylign uses the Bio::HMM::Logo module for transforming alignments and HMMs into logos.


$ cd /opt/src/Bio-HMM-Logo
$ perl Makefile.PL
$ make
$ make test
$ sudo make install

step 6 Skylign

The source code for the Skylign server is hosted on github.


The validation code within the Skylign server requires the hmmer src during compilation. It is expecting it to be in /opt/src/hmmer, so we just create a link to the source we downloaded with the Bio::HMM::Logo module.

$ ln -s /opt/src/Bio-HMM-Logo/src /opt/src/hmmer

Each time a logo is created we store the result on disk for later retrieval. The website code expects the directory to exist, so we create it now.

$ mkdir /opt/data/logos

Starting the server.

Set the working directory to be the root of the LogoServer download.

$ cd /opt/src/LogoServer

Start the server in production mode on port 3000.

$ /path/to/perl ./script/logoserver_server
HTTP::Server::PSGI: Accepting connections at http://0:3000/