Mimosa is a application which provides an web interface to various sequence alignment programs and sequence databases. Currently BLAST is supported, and support for other alignment programs, such as BLASTP and BWA are planned.
Mimosa allows evolutionary researchers to run sequence alignment programs on nucleotides or proteins, and request sequences from various sequence databases, all from a friendly web interface.
Mimosa is intended to be used by evolutionary biology researchers who do sequence alignment against sets of nucleotide or protein data. These sets could all be for different organisms, or all the same organism. Mimosa doesn't care.
If the data is public, Mimosa can be installed on a publicly-availabe website, and allow sequence aligment by collaborators. If the data is pre-publication and still actively changing, Mimosa can also be setup to only be accessed by certain persons, either people on the local intranet, or those logging in with a username and password.
Mimosa exists to solve the problem of making a standalone sequence alignment web interface. All existing sequence alignment web interfaces are either tightly coupled to legacy codebases, difficult to deploy, or just plain unfriendly to end users.
Mimosa plans on being an easy-to-install standalone sequence aligner, which can be integrated into an existing website via a REST interface.
You can install Mimosa from CPAN (where it is called http://p3rl.org/App::Mimosa) .
If you use cpanminus (preferred) :
cpanm App::Mimosa
If you use CPAN.pm:
cpan App::Mimosa
Mimosa requires the 'fastacmd' binary and some image libraries. If you are on a Debian-ish system, you can install these with apt-get:
apt-get install libgd2-xpm-dev blast2
If you have cpanminus:
git clone git://github.com/GMOD/mimosa.git
cd mimosa
cpanm --installdeps . # install necessary Perl dependencies
perl Build.PL
./Build
If you don't have cpanminus:
git clone git://github.com/GMOD/mimosa.git
cd mimosa
perl Build.PL
./Build --installdeps # install necessary Perl dependencies
./Build
After you have run the command
perl Build.PL
you can either type:
./Build test
or use prove:
prove -lrv t/
to run the Mimosa test suite.
If you want to use Mimosa with SQLite, that is the default:
perl script/mimosa_deploy.pl
If you want to deploy Mimosa to an already installed Chado schema, pass the --chado flag
perl script/mimosa_deploy.pl --chado 1
This will also require you to give the proper DSN to your Chado instance in app_mimosa.conf.
If you want to use a different config file:
perl script/mimosa_deploy.pl --chado 1 --conf my_other.conf
If you want to deploy an empty schema, because you plan to load custom sequence sets later on:
perl script/mimosa_deploy.pl --chado 1 --empty 1 --conf some.conf
To start Mimosa on the default port of 3000 :
perl -Ilib script/mimosa_server.pl
If you want to run it on a specific port, then pass the -p param :
perl -Ilib script/mimosa_server.pl -p 8080
If you are developing a new feature in Mimosa, and you want start a new Mimosa instance with the default database, there is a convenient script:
./scripts/debug_freshly_deployed_server.sh
That will remove mimosa.db, deploy a new mimosa_db, and start a new Mimosa instance on port 8080 with DBIC_TRACE=1 set so every SQL statement run will be shown.
Each new Mimosa feature should have a new test file in t/ of the form t/NNN_feature_name.t .
The file called "app_mimosa.conf" contaings your configuration. In it, you can tell Mimosa what your database backend is (SQLite, MySQL, PostgreSQL, Oracle, and anything else that DBI supports) and set various paramters. Here is a partial list:
This sets the smallest sequence input length. If a sequence smaller than this length is submitted, an exception is thrown and an error page is shown to the user.
Whether to allow anonymous people (those that have not authenticated) to submit jobs for reports.
Disable qsub job queueing support, which means jobs will be run on the local machine.
The temporary directory that Mimosa can use.
The default maximum time that a job can take, if it is happening during a request cycle. Defaults to thirty seconds.
The directory where sequence data can be found.
This Config key is a container for Bio::Chado::Schema-related configuration. It has:
The schema class.
A trait, such as "Caching", which is good for production, but not testing.
The
The default is to deploy to a SQLite database in the current directory, but if you want to use this with a currently-existing Chado installation, you should but the connection information in this config key.
Mimosa is written in Perl 5, HTML, CSS, and JavaScript. On the server side, it uses Moose, BioPerl, Bio::Chado::Schema, Bio::BLAST::Database, Digest::SHA1, the Catalyst web framework and many other CPAN modules. On the client side, it uses JQuery and ExtJS.
Please join our mailing list at http://groups.google.com/group/gmod-mimosa and take a look at our Github issues for ideas about what we need help with: https://github.com/GMOD/mimosa/issues . Please use Mimosa and tell us how we can improve it and help it meet your sequence alignment needs.
You are also welcome to join the #gmod IRC channel on irc.freenode.net, where many GMOD developers hang out and talk about various GMOD projects.