= Quorum {}[http://travis-ci.org/ncgr/quorum] A flexible bioinformatics search tool. Quorum is a Rails 3.1 mountable engine that supports the following bioinformatics search tools. * NCBI Blast+ (http://blast.ncbi.nlm.nih.gov) Dependencies: * Ruby >= 1.9.2 * Rails >= 3.1.0 * Redis >= 0.900 for Resque (https://github.com/defunkt/resque) * NCBI Blast+ (ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST) * Emboss (http://emboss.sourceforge.net) See the gem in action. http://medplants.ncgr.org/quorum/jobs/new == Installation Use the latest stable Rails release with Quorum. gem install quorum After you install Quorum and add it to your Gemfile, run the generator. rails generate quorum:install The generator will create a directory in your application's root path quorum/ as well as the necessary config files to run and customize Quorum. You MUST customize "config/quorum_settings.yml" before using Quorum. See Remote Machine Setup below if you choose to execute Quorum remotely. Migrate the database. rake quorum:install:migrations rake db:migrate == Upgrading? Follow these steps to safely upgrade Quorum. * Make a copy of "config/quorum_settings.yml". cp config/quorum_settings.yml config/quorum_settings.yml.old * If you overrode Quorum's styles and / or views, make a copy of the existing directories before upgrading. cp -R app/assets/stylesheets/quorum app/assets/stylesheets/quorum_old cp -R app/views/quorum/jobs app/views/quorum/jobs_old * Run the install generator and answer "Yes" to all conflicts. rails generate quorum:install * Copy the old Search Database(s) to the newly generated "config/quorum_settings.yml" file. * Update the database migrations. rake quorum:install:migrations rake db:migrate * If applicable, override Quorum's views, styles and images. * Update the remote machine(s). == Getting Started === NCBI Blast+ Setup Build your NCBI Blast+ database(s) using the rake task below. rake quorum:blastdb:build Arguments: * DIR= - path to {.tgz, .tar.gz, .tbz, .tar.bz2} files containing raw data. Separate multiple directories with a colon (:). DIR=/path/to/dir:/path/to/another/dir * TYPE= - type of Blast database to build {both, prot, nucl}. Defaults to both. * PROT_FILE_NAME= - name of the file containing protein data. Defaults to peptides.fa. * NUCL_FILE_NAME= - name of the file containing nucleotide data. Defaults to contigs.fa. * REBUILD_DB= - removes existing blast database(s) before building {true or false}. Defaults to false. * EMPTY= - skip makeblastdb and create necessary directories {true or false}. Defaults to false. Set this argument to true if you wish to create your own Blast database(s). Example: rake quorum:blastdb:build DIR=/path/to/dir:/path/to/another/dir TYPE=nucl \ NUCL_FILE_NAME=my_contigs.fa REBUILD_DB=true Empty example: rake quorum:blastdb:build EMPTY=true For a full list of supported arguments. rake -D Don't forget to update "config/quorum_settings.yml" with your newly created database(s). ==== Download Blast Hit Sequence Quorum provides a link to download a Blast hit sequence in the detailed report. For this process to work smoothly, the sequence identifier MUST be unique across ALL Blast databases. Example: "example_blast_database/contigs.fa" >my_unique_sequence_identifier_201201201327077953 ATGC... "another_example_blast_database/contigs.fa" >my_unique_sequence_identifier_201201201327078017 CGTA... If the sequence identifiers are not unique across all Blast databases and you wish to remove the link to download a Blast hit sequence, follow the steps below. * Override Quorum's views (see Customize Quorum below) * Comment out or remove the lines below in "app/views/quorum/jobs/templates/_blast_detailed_report_template.html.erb"
=== Remote Machine Setup -- Recommended for Production Use Follow the steps below to execute Quorum remotely via Net::SSH. * Ensure your ActiveRecord Database adapter in "config/database.yml" is set to *any* supported adapter other than sqlite3. * Ensure your database host is set and accessible via the remote machine(s). * Ensure you have supplied the necessary information in "config/quorum_settings.yml" to execute Quorum remotely. blast: remote: true ssh_host: remote.machine.org ssh_user: remote_user Net::SSH.start() optional params (http://net-ssh.github.com/ssh/v2/api/index.html) ssh_options: password: "secret" port: 8888 * Tar and compress quorum. tar -czvf quorum.tar.gz quorum/ * Copy the newly created tarball to the remote machine. scp quorum.tar.gzgit checkout -b my_branch
* Push to your branch git push origin my_branch
* Create a pull request from your branch
* Find your name added to the README under Contributors
=== TODO
* Add GFF3 annotations to detailed Blast reports
* Add link to download multiple Blast hit sequences in detailed report
* Support Hmmer3
=== Maintained By
* Ken Seal (https://github.com/hunzinker)
=== Contributors
* John Crow (https://github.com/crowja)
* Andrew Farmer (https://github.com/adf-ncgr)
== License
MIT License. Copyright NCGR http://ncgr.org