Mimosa - Miniature Model Organism Sequence Aligner
What is Mimosa?
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.
What does Mimosa do?
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.
Who is Mimosa for?
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.
Why does Mimosa exist? Aren't there a lot of things that already do this?
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.
How do I get Mimosa?
You can install Mimosa from CPAN (where it is called http://p3rl.org/App::Mimosa) .
If you use cpanminus (preferred) :
If you use CPAN.pm:
Installing non-Perl dependencies
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
Cloning via Git
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
How do I run the Mimosa test suite ?
After you have run the command
you can either type:
or use prove:
prove -lrv t/
to run the Mimosa test suite.
How do I deploy a Mimosa schema?
If you want to use Mimosa with SQLite, that is the default:
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
How do I start Mimosa ?
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
How do I hack on Mimosa ?
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:
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 .
How do I configure Mimosa ?
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 Model::BCS container has a container, which contains the "dsn" config key.
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.
What is Mimosa written in?
How can I help hack on Mimosa or otherwise get involved?
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.